Найти в одномерном массиве элементы, сумма которых максимальна, затем удалите все элементы, предшествующие тому элементу, индекс которых наибольший из двух. (в паскале)
Например так(выводит начальный массив, максимальную сумму, измененный массив).
program test; uses crt; var arr:array[1..10] of integer; i,j,max,maxn:integer; begin randomize; clrscr; for i:=1 to 10 do begin arr[i]:=random(100); write(arr[i],' '); end; writeln;
max:=arr[1]+arr[2]; maxn:=2;
for i:=1 to 10 do for j:=1 to 10 do if i<>j then if max<arr[i]+arr[j] then begin max:=arr[i]+arr[j]; if i>j then maxn:=i else maxn:=j; end;
writeln('max summ=',max);
for i:=1 to 10 do begin if i<maxn then arr[i]:=0; write(arr[i],' '); end; readln; end.
//PascalABC.NET (версия 3.1, сборка 1198 от 11.03.2016) var a,n,k,i,j,s:integer; begin writeln('Количество учеников и количество оценок'); readln(n,k); for i:=1 to n do begin for j:=1 to k do begin write('Ученик № ',i, ' оценка № ',j,' = '); readln(a); s:=s+a; end; end; println('Средняя оценка группы ',s/(n*k):6:3); end.
program test;
uses crt;
var
arr:array[1..10] of integer;
i,j,max,maxn:integer;
begin
randomize;
clrscr;
for i:=1 to 10 do
begin
arr[i]:=random(100);
write(arr[i],' ');
end;
writeln;
max:=arr[1]+arr[2];
maxn:=2;
for i:=1 to 10 do
for j:=1 to 10 do
if i<>j then
if max<arr[i]+arr[j] then
begin
max:=arr[i]+arr[j];
if i>j then maxn:=i else maxn:=j;
end;
writeln('max summ=',max);
for i:=1 to 10 do
begin
if i<maxn then arr[i]:=0;
write(arr[i],' ');
end;
readln;
end.