【发布时间】:2020-05-07 07:00:39
【问题描述】:
我正在创建一个操作矩阵的程序。 该程序的一部分是我需要生成一个带有随机输入的矩阵。
但是,在生成矩阵并打印矩阵的每个值以仔细检查随机数字是否正确存储时,矩阵似乎只存储最后一行数字,然后复制它。
您可以看到它创建了矩阵 [[3,6][7,5]] 但它只显示为 [[7,5][7,5]]
这是我隔离问题的代码:
#include <stdio.h>
#include <stdlib.h>
int main() {
int i, j, m, n, row, col;
int sum = 0, row_i=0, col_i=0;
int matrix[m][n];
int row_m[m];
printf("Enter m\n");
scanf("%d", &m);
printf("Enter n\n");
scanf("%d", &n);
for(i = 0; i < m; i++){
for(j = 0; j < n; j++){
matrix[i][j] = rand()%10;
printf("%d ",matrix[i][j]);
}
printf("\n");
}
printf("%d\n", matrix[0][0]);
printf("%d\n", matrix[0][1]);
printf("%d\n", matrix[1][0]);
printf("%d\n", matrix[1][1]);
return 0;
}
【问题讨论】:
-
您需要在从用户那里获得
m和n之后声明数组。 -
@Jessica Donley;这些声明 int matrix[m][n]; int row_m[m];无效,因为变量 m 和 n 未初始化。
-
@Barmar 你修好了!哈哈,我还有很长的路要学,但非常感谢你的帮助。