Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
Автор: agon (31.08.2009 в 16:06) Второй вариант был исправлен следующим образом
#include <iostream> using namespace std; int main() { const int M = 10; const int M0 = M+1;//резервируем место для хранения барьерного элемента рядом с основным массивом! int i = 0; int k = 0;//барьерный элемент int m[M0] = {0, 80, -4, -9, 0, 1, 4, 20, 10, 50, 0};//сразу включаем в массив барьерный элемент, //но впоследствии оперируем массивом M //Вывод массива на экран for(i = 0; i < M; i++) cout << m[i] << " "; //Находим первый и последний нулевые элементы int zero_b = 0, zero_e = 0;//первый и последний нулевые элементы i = 0; int sum = 0; while(m[i] != k) { i++; cout << "m[" << i << "] " << " = " << m[i] << endl; } if(i == M) { cout << "No zero\n"; } else { zero_b = i; cout << "Number of first zero " << zero_b << endl; i = M-1; while(m[i] != 0)//проверяем с обратного конца i--; zero_e = i; cout << "Number of last zero " << zero_e << endl; cout << "-------------------\n"; //Сумма элементов массива, расположенных между 1 и последним нулевыми элементами if(zero_b == zero_e || abs(zero_b - zero_e) == 1) cout << "No interval. Sum = " << sum <<endl; else { for(i = zero_b+1; i < zero_e; i++) { sum += m[i]; } cout << "Sum between " << zero_b << " and " << zero_e << " zero elements is " << sum << endl; } } return 0; }
Ваше имя:
Пароль:
Цитировать Используйте тэги для выделения текста: Код: [code][/code] Жирный: [b][/b] Наклонный: [i][/i] URL: [url][/url]
Сообщение:
Прикрепить: