私のプログラムは、4x4 行列である数値 k を受け取る必要があり、k にこの行列の主対角を掛ける必要があります。出力は入力行列である必要がありますが、その主対角に k を掛けたものです。たとえば、k = 2 と次の行列を指定します。
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
出力は次のようになります。
2 1 1 1
1 2 1 1
1 1 2 1
1 1 1 2
しかし、私のプログラムは次の出力を提供します:
2 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
何故ですか?行列の最初の数だけでなく、主対角線を掛けるにはどうすればよいですか?
私のコード:
#include <stdio.h>
int main() {
int k;
int mult = 0;
int matrix[4][4];
int row, column;
for (row = 0; row < 4; row++) {
for (column = 0; column < 4; column++) {
scanf("%d", &matrix[row][column]);
}
}
for(row = 0 ; row < 4 ; row++)
{
for(column = 0 ; column < 4 ; column++) {
printf("%3d", matrix[row][column]);
mult = k * matrix[row][row];
}
printf(" \n");
}
return 0;
}