Заполнение третьей матрицы по результатам сравнения элементов первых двух

Две равноразмерные матрицы (например, 4×3) заполняются вводом с клавиатуры. В ячейки третьей матрицы такой же размерности записывать бОльшие элементы из соответствующих ячеек первых двух матриц. Например, если во второй ячейке третьей строки первой матрицы находится число 89, а в ячейке с таким же индексом второй матрицы находится число 10, то в такую же ячейку третьей матрицы следует записать число 89.

Каждую из двух матриц следует заполнять в отдельном цикле. При заполнении третьей матрицы сравнивать ячейки с такими же адресами первых двух матриц и присваивать ячейке третьей матрицы наибольшее значение. В этом же цикле можно выводить третью матрицу на экран.

Pascal


const
M = 4;
N = 3;
var
a, b, c: array[1..N,1..M] of integer;
i,j: byte;
begin
writeln('Первая матрица: ');
for i:=1 to N do
for j:=1 to M do read(a[i,j]);

writeln('Вторая матрица: ');
for i:=1 to N do
for j:=1 to M do read(b[i,j]);

writeln('Результирующая матрица: ');
for i:=1 to N do begin
for j:=1 to M do begin
if a[i,j] > b[i,j] then
c[i,j] := a[i,j]
else
c[i,j] := b[i,j];
write(c[i,j], ' ');
end;
writeln;
end;
end.



Первая матрица:
4 5 3 3
10 12 29 -1
-5 9 2 -5
Вторая матрица:
4 9 -2 2
3 7 4 -8
12 16 -1 3
Результирующая матрица:
4 9 3 3
10 12 29 -1
12 16 2 3

Язык Си


#include < stdio.h>
#define M 4
#define N 3
main() {
int a[N][M], b[N][M], c[N][M], i, j;
printf("Первая матрица:\n");
for (i=0; i< N; i++)
for (j=0; j< M; j++)
scanf("%d", &a[i][j]);
printf("Вторая матрица:\n");
for (i=0; i< N; i++)
for (j=0; j< M; j++)
scanf("%d", &b[i][j]);
printf("Результирующая матрица:\n");
for (i=0; i< N; i++) {
for (j=0; j< M; j++) {
if (a[i][j] > b[i][j]) c[i][j] = a[i][j];
else c[i][j] = b[i][j];
printf("%d ", c[i][j]);
}
printf("\n");
}
}
Python


M = 4
N = 3
a = []
for i in range(N):
z = []
for j in range(M):
z.append(int(input()))
a.append(z)

b = []
for i in range(N):
z = []
for j in range(M):
z.append(int(input()))
b.append(z)

c = b[0:]
for i in range(N):
for j in range(M):
if a[i][j] > b[i][j]:
c[i][j] = a[i][j]

print("Первая матрица:")
for i in a:
print(i)
print("Вторая матрица:")
for i in b:
print(i)
print("Результирующая матрица:")
for i in c:
print(i)

В Питоне мы можем присвоить одну матрицу другой. Однако если это сделать напрямую (c = b), то просто установим две ссылки на один и тот же список. Поэтому список в данном случае копируется с помощью среза.

Поскольку матрица c оказывается такой же как b, то мы можем заменять на элементы a значения только в тех ячейках, которые меньше соответствующих в a.
КуМир

алг заполнение третьей матрицы
нач
цел N=3
цел таб a[1:N,1:4], b[1:N,1:4], c[1:N,1:4]
цел i, j
вывод "Первая матрица:", нс
нц для i от 1 до N
ввод a[i,1], a[i,2], a[i,3], a[i,4]
кц
вывод "Вторая матрица:", нс
нц для i от 1 до N
ввод b[i,1], b[i,2], b[i,3], b[i,4]
кц
вывод "Результирующая матрица:", нс
нц для i от 1 до N
нц для j от 1 до 4
если a[i,j] > b[i,j] то c[i,j] := a[i,j]
иначе c[i,j] := b[i,j] все
вывод c[i,j], " "
кц
вывод нс
кц
кон
Basic-256


M = 4
N = 3
dim a(N,M)
dim b(N,M)
dim c(N,M)
for i=0 to N-1
for j=0 to M-1
input a[i,j]
next j
next i
for i=0 to N-1
for j=0 to M-1
input b[i,j]
next j
next i
for i=0 to N-1
for j=0 to M-1
if a[i,j] > b[i,j] then
c[i,j] = a[i,j]
else
c[i,j] = b[i,j]
endif
next j
next i
print "Первая матрица:"
for i=0 to N-1
for j=0 to M-1
print a[i,j] + " ";
next j
print
next i
print "Вторая матрица:"
for i=0 to N-1
for j=0 to M-1
print b[i,j] + " ";
next j
print
next i
print "Результирующая матрица:"
for i=0 to N-1
for j=0 to M-1
print c[i,j] + " ";
next j
print
next i

Оцените статью
Добавить комментарий