【发布时间】:2021-11-18 17:06:51
【问题描述】:
int main() {
int n = 0;
int matrix[n][n];
printf("Insert the order of the matrix:");
scanf("%d", &n);
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
matrix[i][j] = i + j;
printf("The matrix is:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", matrix[i][j]);
}
}
对于 2x2 矩阵,输出应该是 0 1 1 2,但它是 1 2 1 2,对于 3x3 矩阵,它应该是 0 1 2 1 2 3 2 3 4,但它显示 2 3 4 2 3 4 2 3 4
问题是我的输出总是矩阵的第一行,重复 n 次。有什么帮助吗?
【问题讨论】:
-
你应该在
scanf("%d", &n);之后声明int matrix[n][n];,因为当你声明数组时n是0。 -
当您声明
int matrix[n][n]时,n的值为0。
标签: c matrix multidimensional-array