Генератор цветов Уроки C++ Уроки Windows forms Учебники по программированию Уроки HTML Уроки CSS Готовые задания Исходники Полезные программы
регистрация доменов

Дешёвые домены


Уроки C++


Сумма между первым и последним нулевыми элементами массива C++

Для решения этой задачи понадобится ранее изученный оператор “break”. В одном цикле "for()" программа будет просматривать массив с самого начала "i++", пока не найдёт первый нулевой элемент, а во втором цикле "for()" программа будет производить поиск с конца "i--". В третьем цикле уже будет вычисляться сумма. Что далеко не каждый раз динамический массив будет выдавать сразу два "0", для того что бы повысить вероятность выпадания "0" нужно задавать большое количество элементов. Вот код решения данной задачи (пример скомпилирован в Dev C++):



#include "iostream"
#include "time.h"

using namespace std;

int main()
{
setlocale(LC_ALL, "Russian");
int k1, k2, i;
int sum = 0;
int n;
cout << "Введите количество элементов: ";
cin >> n;
cout << endl << endl;
int *mas = new int [n];
srand(time(NULL));
for (int i=0; i<n; i++)
{
mas[i] = rand() % 20 - 10;
cout << mas[i] << " ";
}
cout << endl << endl;
for (i=0;; i++)
if (mas[i] == 0) {k1 = i; break;}
for (i=n;; i--)
if (mas[i] == 0) {k2 = i; break;}
for (i=k1+1; i sum +=mas[i];
cout << "Сумма = " << sum << endl;
system("PAUSE");
return 0;
}


Результат:



<< К списку заданий