Program rabota_s_massivom; const N = 10; var M : array[1..N] of integer; i, max, nowMax, maxIndex, index, summ : integer; begin for i := 1 to N do readln(M[i]); for i := 1 to N do begin if M[i] mod 2 > 0 then begin if nowMax = 0 then index := i; nowMax := nowMax + 1; if (i = N) and (nowMax > max) then begin max := nowMax; maxIndex := index; end; end else if nowMax > max then begin max := nowMax; maxIndex := index; nowMax := 0; end; end; if max = 0 then writeln('Не существует') else begin summ := 0; for i := maxIndex to maxIndex + max - 1 do summ := summ + M[i]; writeln('Сумма: ', summ); end; end.
#include <pch.h>
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUSSIAN");//Добавление русского языка
system("color F0");//Замена цвета экрана на белый и текста на черный
int A, B, A1, B1, A2, B2, A3, B3; //Добавление переменных
cout << "Введите результаты первого взвешивания" << endl; //Приглашение к вводу
cin >> A1 >> B1; //Ввод
cout << "Первое взвешивание: " << A1 << " - " << B1 << endl; //Эхо-контроль
if ((A1 < 0) || (B1 < 0))
{
cout << "Ошибка. Введите натуральное число" << endl;
return 1; //Выход по ошибке 1
}
cout << "Введите результаты второго взвешивания" << endl; //Приглашение к вводу
cin >> A2 >> B2; //Ввод
cout << "Второе взвешивание: " << A2 << " - " << B2 << endl; //Эхо-контроль
if ((A2 < 0) || (B2 < 0))
{
cout << "Ошибка. Введите натуральное число" << endl;
return 2; //Выход по ошибке 2
}
cout << "Введите результаты третьего взвешивания" << endl; //Приглашение к вводу
cin >> A3 >> B3; //Ввод
cout << "Третье взвешивание: " << A3 << " - " << B3 << endl; //Эхо-контроль
if ((A3 < 0) || (B3 < 0))
{
cout << "Ошибка. Введите натуральное число" << endl;
return 3; //Выход по ошибке 3
}
//Вычисления
A = A1 - A3;
B = B1 - B2;
cout << "Первый математик собрал: " << A << endl <<
"Второй математик собрал: " << B << endl; //Вывод результатов
return 0; //Штатный выход
} //end main
Объяснение:
выходит что-то в этом духе в Visual Studio Express 2017
Не совсем понял вот этот момент в задаче: "В i-й строке (1 ≤ i ≤ 3) записаны целые числа ai и bi (0 ≤ ai, bi ≤ 10 000)."
если надо сделать через цикл или что-то изменить - пиши
const
N = 10;
var
M : array[1..N] of integer;
i, max, nowMax, maxIndex, index, summ : integer;
begin
for i := 1 to N do
readln(M[i]);
for i := 1 to N do
begin
if M[i] mod 2 > 0 then
begin
if nowMax = 0 then
index := i;
nowMax := nowMax + 1;
if (i = N) and (nowMax > max) then
begin
max := nowMax;
maxIndex := index;
end;
end
else
if nowMax > max then
begin
max := nowMax;
maxIndex := index;
nowMax := 0;
end;
end;
if max = 0 then
writeln('Не существует')
else
begin
summ := 0;
for i := maxIndex to maxIndex + max - 1 do
summ := summ + M[i];
writeln('Сумма: ', summ);
end;
end.
Как-то так