Здравствуйте.Преподаватель сказал, что в программе есть какие-то мелкие недочёты. Сколько не искал не могу найти что неправильно. Помогите сделать программу. Здание изначально было такое. Дан двумерный массив. Найти наибольший чётный положительный элемент выше главной диагонали и наименьший отрицательный элемент ниже главной диагонали с указанием их индексов. Создать новый массив, в котором найденные элементы поменяются местами.
Требования преподавателя - числа задаются не рандомно , сделать так чтобы можно было вводить размерность массива( количество строк,столбцов))
Заранее спасибо за помощь!
program mass; const m =16; var n, i, j, ia, ja, ib, jb, t:integer; a:array[1..m,1..m] of integer; fa, fb:boolean; begin repeat write('n = '); readln(n); if (n < 2) or (n > m) then writeln('n out of range 2..', m,', reenter.') until (n >=2)and(n <= m); writeln('Enter array:'); for j :=1 to n do for i :=1 to n do begin write('a[', i,', ', j,']= '); readln(a[i, j]) end; fa := false; fb := false; writeln('Source array:'); for j :=1 to n do begin fori :=1 to n do begin write(a[i, j]:6); if (i > j)and not(odd(a[i, j]))and(a[i, j] >=0) then if fa then begin if (a[i, j] > a[ia, ja]) then begin ia := i; ja := j end end else begin ia := i; ja := j; fa := true; end; if (i < j)and(a[i, j] < 0) then if fb then begin if (a[i, j] < a[ib, jb]) then begin ib := i; jb := j end end else begin ib := i; jb := j; fb := true end end; writeln end; write('Max even positive elementabove principal diagonal: '); if fa thenwriteln('a[', ia,',', ja,'] = ', a[ia, ja]) elsewriteln('not found.'); write('Min negative element belowprincipal diagonal: '); if fb thenwriteln('a[', ib,',', jb,'] = ', a[ib, jb]) elsewriteln('not found.'); if fa and fb then begin t := a[ia, ja]; a[ia, ja]:= a[ib, jb]; a[ib, jb]:= t; writeln('Result:'); forj :=1 to n do begin fori :=1 to n do write(a[i, j]:6); writeln end end else writeln('No change.'); end.
|
|
|
for j :=1 to n do for i :=1 to n do begin write('a[', i,', ', j,']= '); readln(a[i, j]) end;
замени на
randomize(); for j :=1 to n do for i :=1 to n do begin a[i, j] = random(100); write('a[', i,', ', j,']= ', a[i,j]); end;
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|