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];这样,每次迭代都会从零开始初始化数组元素。
解决 无用评论 打赏 举报