#include<stdio.h> main() { int a[4]; int b[3]={1,2,3}; int i,j; for(i=0;i<4;i++) for(j=0;j<3;j++) a

2025-06-23 06:00:01
推荐回答(5个)
回答1:

之所以出现333,问题出现在一下三句语句
for(i=0;i<4;i++)
for(j=0;j<3;j++)
a[i]=b[j];
这里你用的是嵌套循环,首先i=0的时候,执行for(j=0;j<3;j++)a[i]=b[j];这个循环,于是a[0]的值从1变成2变成3,然后i+1变成1的时候,还是执行for(j=0;j<3;j++)a[i]=b[j];这个循环,于是a[1]的值也从1变成2变成3,然后i+1变成2的时候,还是执行for(j=0;j<3;j++)a[i]=b[j];这个循环,于是a[2]的值也从1变成2变成3,最后就输出333了
如果要正确的答案,就把程序改成如下形式,//后面是你原来的语句,vc6通过调试运行了
#include
main()
{
int a[4]={0};//int a[4];
int b[3]={1,2,3};
int i,j;
//for(i=0;i<4;i++)
for(j=0;j<3;j++)
a[j]=b[j];//a[i]=b[j];
for(i=0;i<4;i++)
printf("%d",a[i]);
getch();
}

回答2:

循环错了,你仔细分析一下。只要一个for语句,并且i和j一起变。

回答3:

#include
main()
{
int a[4];
int b[3]={1,2,3};
int i,j;
for(i=0;i<4;i++)
a[i]=b[j];
for(i=0;i<4;i++)
printf("%d",a[i]);
getch();
}
二楼的说的对!不知道你是否是这个意思呢?

回答4:

for(i=0;i<4;i++)
for(j=0;j<3;j++)
你这里用两层循环,i=0时a[0]依次赋为1,2,3;i=1,2,3时也一样,最后都改成b[2]=3了;

把a[]都初始化为0,直接
for(i=0;i<3;i++)
a[i]=b[i];就行了

回答5:

删去j循环,用a[i]=b[i]; 然后再看看吧!因为你是双重循环=为『赋值』运算只用最后的值也就是为什么等于3