Консультация № 108517
08.11.2007, 06:11
0.00 руб.
0 1 1
Пожалуйста помогите решить задачу
Вычеркнуть k строку и m столбец, содержащие минималь-
ное значение матрицы A[1..N,1..M], записав в новую матрицу B[1..N-1,1..M-1]
Спасибо

Обсуждение

Неизвестный
08.11.2007, 16:46
общий
это ответ
Здравствуйте, Анна Ильина!
Алгоритм прост: сначала ищем позицию минимального элемента в исходном массиве, потом переписываем во второй массив все элементв первого, кроме тех, что находятся на одной строке или в одном столбце с минимальным. Решение смотрите в приложении, комментарии помогут Вам разобраться.
Удачи!

Приложение:
Var a: array [1..100, 1..100] of integer; {объявление переменных} b: array [1..100, 1..100] of integer; i, j, imin, jmin, m, n, k, p: integer;begin readln (m); {ввод данных} readln (n); for i:=1 to m do for j:=1 to n do readln (a[i,j]); writeln (‘Matritza A:‘); {вывод матрицы А на экран} writeln; for i:=1 to m do begin for j:=1 to n do write (a[i,j]:5); writeln; end; imin:=1; jmin:=1; {берём первый элемент за минимальный} for i:=1 to m do {в цикле стравниваем текущий элемент с минимальным} for j:=1 to n do if a[i,j]<a[imin,jmin] then {если нашли меньший - заменяем} begin imin:=i; jmin:=j; end; k:=0; p:=0; {счётчики для массива В} for i:=1 to m do begin if i=imin then continue; {если это строка с минимальным - пропускаем} inc (k); p:=0; for j:=1 to n do begin if j=jmin then continue; {если это столбец с максимальным - пропускаем} inc (p); b[k,p]:=a[i,j]; {переписываем элемент в В} end; end; writeln (‘Matritza B:‘); {выводим результат} writeln; for i:=1 to m-1 do begin for j:=1 to n-1 do write (b[i,j]:5); writeln; end; end.
Форма ответа