【发布时间】:2013-07-18 19:16:25
【问题描述】:
我的程序必须接收一个数字 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;
}
【问题讨论】:
-
您的代码没有在任何地方操作矩阵内容?
-
k值设置在哪里?matrix[row][row]的新值在哪里设置? -
您的程序与您声称的输入和输出不匹配。请更正这一点。
标签: c matrix multidimensional-array