bit-bite 2021-03-31 18:20 采纳率: 0%
浏览 25

include<stdio.h> void main() { int a[5]; int b[1

include<stdio.h> void main() { int a[5]; int b[1][2]; int max , i,j,k; printf("input 6 numbers:"); for (i=0;i<5;i++) { scanf("%d",&a[i]); } i=0; for(j=0;j<2;j++) { for(k=0;k<3;k++) { b[j][k]=a[i]; i++; } } 有没有大神看下为什么我这样给二维数组赋值b(1)(2)没有赋到,而b(0)(2赋值了两次)
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-23 19:22
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在C语言中,数组的索引是从0开始的。当你使用for循环来初始化一个二维数组时,你需要确保你的索引是正确的。

    对于你的情况,b[1][2]应该初始化为a[0]。但是,由于你在main()函数内已经对数组进行了初始化,所以即使你尝试在b内部重新初始化它,也会覆盖掉之前的初始化值。

    如果你想要在每次迭代都从零开始,你可以将b[1][2]替换为b[0][2]

    int b[1][2];
    

    或者

    int b[2][1];
    

    然后,在你的main()函数内初始化b

    b[0][2] = a[0];
    

    这样,每次迭代都会从零开始初始化数组元素。

    评论

报告相同问题?