Дано не менее трех различных натуральных чисел, за которыми следует 0. Определить 3 наибольших числа среди них.
Дано не менее трех различных натуральных чисел, за которыми следует 0. Определить 3 наибольших числа среди них.
Ответ(ы) на вопрос:
Гость
Program msdos_2;
uses crt;
var
a:array[1..3] of integer; //массив трёх максимальных элементов
r,max,i,j: integer;
begin
writeln('*** alphaues is thinking... ***');
writeln('*** OK ***');
r:=1;
writeln('Введите ненулевое число');
writeln('(или введите 0 для конца последовательности) ');
{вводим 3 первых элемента} for i:=1 to 3 do
begin
write('Ввод:');
readln (r);
a[i]:=r;
end;
{сортируем массив из 3-х первых элементов}
for i:=1 to 2 do
begin
max:=a[i];
for j:=i+1 to 3 do
if a[j]>max then
max:=a[j];
a[j]:=a[i];
a[i]:=max;
end;
{Продолжаем ввод и сравниваем текущее число с массивом из 3-х первых}
while r<>0 do
begin
write('Ввод:');
readln (r);
if r>a[1] then
begin
a[3]:=a[2];
a[2]:=a[1];
a[1]:=r;
end
else
if r>a[2] then
begin
a[3]:=a[2];
a[2]:=r;
end
else
if r>a[3] then
a[3]:=r;
end;
{выводим 3 максимальных элемента} writeln();
writeln('Три наибольших элемента массива:');
for i:=1 to 3 do
writeln(i,'-й: ',a[i]);
end.
Не нашли ответ?
Похожие вопросы