1.дан массив R(N) N<=50. Переставить максимальный и минимальный элементы массива.
2.Дана целочисленная прямоугольная матрица.Определить минимальное из чисел,встречающихся в заданной матрице более одного раза.(оформить в виде функции).
medievil90
1. !-й элемент массива считаешь максимальным (минимальным) и в далее в цикле сравниваешь его с элементами массива. Ежелт больше (меньше), то соотвественно он и есть макс. (мин.).
Далее, меняешь их местами.
Program Massiv;
{Uses max_crt;}
Const k=10; {2<=k<=50 вводи что хочешь...}
Type
t=array[1..k] of integer;
Var
x:t; i,max,min,Imax,Imin,tmp:integer;
Begin
{clrscr;}
for i:=1 to k do read(x[i]);
readln;
max:=x[1];
min:=x[2];
For i:=1 to k do
Begin
if max < x[i] then begin
max:=x[i];
Imax:=i;
end;
if min > x[i] then begin
min:=x[i];
Imin:=i;
end;
end;
tmp:=x[Imin];
x[Imin]:=x[Imax];
x[Imax]:=tmp;
For i:=1 to k do write(x[i]:3);
End.
Спасибо, Client, теперь уже нет...
Добавлено через 3 мин.
max:=x[1];
min:=x[k];
Program Massiv;
{Uses max_crt;}
Const k=10; {k<=50 вводи что хочешь...}
Type
t=array[1..k] of integer;
Var
x:t; i,max,min,Imax,Imin,tmp:integer;
Begin
{clrscr;}
readln;
for i:=1 to k do read(x[i]);
readln;
Imax:=1;
max:=x[Imax];
Imin:=k;
min:=x[Imin];
if max < min then begin
Imax:=k;
max:=x[Imax];
Imin:=1;
min:=x[Imin];
end;
For i:=1 to k do
Begin
if max < x[i] then begin
max:=x[i];
Imax:=i;
end;
end;
For i:=1 to k do
Begin
if min > x[i] then begin
min:=x[i];
Imin:=i;
end;
end;
tmp:=x[Imin];
x[Imin]:=x[Imax];
x[Imax]:=tmp;
For i:=1 to k do write(x[i]:3);
End.
Yevgeny, а теперь расскажи, зачем тебе непонятные условия и море циклов вместо того, чтобы просто:
imax := 1; imin := 1;Или программа теперь тем лучше, чем больше непонятных действий делает?
for i := 2 to k do begin
if x[imax] < x[i] then imax := i;
if x[imin] > x[i] then imin := i;
end;
{ и менять x[imin] <-> x[imax] }
?