Консультация № 175207
13.12.2009, 18:31
0.00 руб.
0 2 2
Приветствую вас,уважаемые эксперты,помогите решить задачу.Даны действительные числа a1, a2, … ,an. Поменять местами наименьший из них и наибольший из них.

Обсуждение

давно
Профессионал
304622
583
13.12.2009, 22:08
общий
это ответ
Здравствуйте, Владимир Савельев.

Красивый ввод/вывод не прорабатывать не стал.

Приложение:
const n=10;

var a:array[1..n] of real;
i,imin,imax:integer;
r:real;

begin
for i:=1 to n do
read(a[i]);


imax:=1;
imin:=1;
for i:=2 to n do
begin
if a[i]<a[imin]
then imin:=i;
if a[i]>a[imax]
then imax:=i;
end;

r:=a[imax];
a[imax]:=a[imin];
a[imin]:=r;

for i:=1 to n do
writeln(a[i]4);
writeln;
readln;

end.
5
Неизвестный
16.12.2009, 15:13
общий
это ответ
Здравствуйте, Владимир Савельев! Решение в приложении.

Приложение:
var A: Array[1..100] of Integer;
I, C, N, NoC, S, NoS: Integer;
begin
writeln('Enter count of numbers');
readln(N);
for I := 1 to N do
begin
writeln('Enter number a', I);
readln(A[I]);
if A[I] > C then
begin
C := A[I];
NoC := I;
end;
if (A[I] < S) or (I = 1) then
begin
S := A[I];
NoS := I;
end;
end;
A[NoC] := A[NoS] + A[NoC]; {с помощью трех команд меняем местами значения ячеек}
A[NoS] := A[NoC] - A[NoS];
A[NoC] := A[NoC] - A[NoS];
for I := 1 to N do
write(A[I], ' ');
readln;
end.
Форма ответа