Здравствуйте.Преподаватель сказал, что в программе есть какие-то мелкие недочёты. Сколько не искал не могу найти что неправильно. Помогите сделать программу. Здание изначально было такое. Дан двумерный массив. Найти наибольший чётный положительный элемент выше главной диагонали и наименьший отрицательный элемент ниже главной диагонали с указанием их индексов. Создать новый массив, в котором найденные элементы поменяются местами.
Требования преподавателя - числа задаются не рандомно , сделать так чтобы можно было вводить размерность массива( количество строк,столбцов))
Заранее спасибо за помощь!
23 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 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 for i := 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 element above principal diagonal: '); if fa then writeln('a[', ia, ', ', ja, '] = ', a[ia, ja]) else writeln('not found.'); write('Min negative element below principal diagonal: '); if fb then writeln('a[', ib, ', ', jb, '] = ', a[ib, jb]) else writeln('not found.'); if fa and fb then begin t := a[ia, ja]; a[ia, ja] := a[ib, jb]; a[ib, jb] := t; writeln('Result:'); for j := 1 to n do begin for i := 1 to n do write(a[i, j]:6); writeln end end else writeln('No change.');end.
|
|
|
издеваешься?
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|