C语言数组代码解释,为什么输出10,30,50

#include<stdio.h>
int main()
{
int i;
a[6]={10,20,30,40,50};
for(i=0;i<6;i+=2)
{
printf("%d\n",a[6]);
}
}

首先,这段代码是错的,正确的代码如下:

#include<stdio.h>
int main()
{   
    int i;   
    int a[6]={10,20,30,40,50};  
    for(i=0;i<6;i+=2)  
    {    
         printf("%d\n",a[i]);  
    }
}

输出10,30,50的原因如下:

1)当i=0时,满足i<6,所以输出a[0] --> 10;然后i+=2 --> i此时为2;

2) i=2,满足i<6,所以输出a[2] --> 30;然后i+=2 --> i此时为4;

3) i=4,满足i<6,所以输出a[4] --> 50;然后i+=2 --> i此时为6;

4) i=6,不满足i<6,退出循环;

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-28
你确定是printf("%d\n",a[6])?
不是a[i]?
如果是a[i]的话,结果是10,30,50
第2个回答  2013-10-28
//你贴的代码就有问题
#include<stdio.h>
int main()
{
   int i;
   int a[6]={10,20,30,40,50};
  for(i=0;i<6;i+=2)
  {
    printf("%d\n",a[i]); //首先输出a[0], 其次输出a[2], 最后a[4],分别为10,30,50
  }
}

第3个回答  2013-10-28
for循环的问题i+=2,如果要全部输出i++;printf(“%d\n”,a【i】)
相似回答