Var i,j,pr: integer; a: array[1..5,1..5] of integer; begin randomize; pr: =1; write('исходный массив: '); for i: =1 to 5 do begin writeln; for j: =1 to 5 do begin a[i,j]: =random(4)+1; write(a[i,j]: 2); if i< j then pr: =pr*a[i,j] end end; writeln; writeln('произведение ',pr) end.
Ohokio198336
08.12.2021
Для этого нужно в цикле пробежаться по элементам mass[i] и элементам mass[30 - i], тоесть чтобы не запоминать суму элементов достаточно её сравнить с сумой каких либо других пар (в нашом случае начало масива мы сравниваем с концом). далее создадим переменную, по каторой мы будем определять индекс элемента сума которого из соседним элементом являлась самой большой. просто для проверки запускается 2 цикла в которых будет индекс инкрементироваться, не важно в конце или в начале этот элемент. в цикле где есть этот элемент делаем проверку, найшли ли мы нужный элемент, если да, то записуем значение индекса в переменную, далее записуем проверку, на равенство индекса и переменной, что не даст нам изменить значение нужного индекса до тех пор, пока мы не найдем нужный, а индекс декрементируем, он все равно будет не изменен, по скольку в начале цыкла мы его увеличиваем на 1. примерно все! c++ . . int main { int mass[30]; int i,counter, j; for(i = 0,i< 30; i++) {cout< < "your mass: "< < mass[i] = rand%100< < endl; // делаем заполнение масива случайными числами от 0 до 100 } //делаем собственно проверку for(i=0; i< 30; i++) { for(j=0; j< 30; j++) { if (mass[i]+mass[i+1]< mass[30-j]+mass[30-j-1]){ counter=j; j--; } else {counter = i; i--; } } cout< < "your max element : "< < mass[counter]; } getch(); return 0;
ответ: 66
объяснение:
программа прибавляет 11 к переменной s.
всего таких циклов 6, т.к. к изменяется от 7 до 12
1) к = 7, 2) к=8, 3) к=9, 4) к=10, 5) к=11, 6) к=12
всего к s добавится : 11*6=66, s=0+66 = 66