首页 > 解决方案 > c中2d数组的5 * 1矩阵

问题描述

当我使用二维数组时。我给了一个 5*1 矩阵的输入,它的结果是这样的。

#include<stdio.h>
int main(){
int rows=5,cols=1;
int arr[rows][cols];
for(int i=0;i<rows;i++){
    for(int j=0;j<cols;j++){
        scanf("%d",&arr[i][j]);
    }
}
printf("%d\n",arr[1][1]);
printf("%d\n",arr[2][0]);
printf("%d\n",arr[0][2]);
return 0;
}

输入:1 2 3 4 5

输出 :3 3 3

它是如何工作的?

标签: carrays

解决方案


更改以下代码段

printf("%d\n",arr[1][1]);
printf("%d\n",arr[2][0]);
printf("%d\n",arr[0][2]);

到以下一个:

printf("%d\n",arr[1][0]);
printf("%d\n",arr[2][0]);
printf("%d\n",arr[0][0]);

正如 Yunnosch 在评论中提到的那样,您正在尝试访问数组之外​​并观察未定义的行为。


推荐阅读