我的程序必须接收一个数字 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;
}
最佳答案
如果你想改变矩阵值,只改变循环操作,像这样:
for(row = 0 ; row < 4 ; row++)
{
for(column = 0 ; column < 4 ; column++) {
if ( row == column )
matrix[row][column] *= k;
printf("%3d", matrix[row][column]);
}
printf(" \n");
}
关于c - 将矩阵的主对角线与数字相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17747172/