我试图用for循环填充一个矩阵,但是我遇到了一个问题,任意两个坐标x_0和y_0可以互换。为了强调这个问题,我把它简化为最基本的例子:
我填充下面的2x2矩阵,让它在1,2(或数组中的[0][1]处打印值):
int matrix[1][1];
for(j=0; j<2; j++){
for(i=0; i<2; ++i){
scanf("%d", &matrix[j][i]);
}
}
printf("%d \n", matrix[0][1]);
但是它总是返回第三个输入的值,或[1][0]。我原本以为我可能弄乱了for循环,但是打印矩阵[1][0]返回相同的值(尽管这里是适当的值)。
谢谢你的帮助
编辑:添加声明。
最佳答案
看来,您正在没收索引与分配,
int matrix[1][1]
分配1×1矩阵,并且
int matrix[2][2]
分配一个2×2的矩阵,其中
matrix[1][1]
是矩阵的实际M2,2元素,因为第一行、第一列的索引是0,0。