我的程序必须接收一个数字 k,一个 4x4 矩阵,并且 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;
}