C语言数组 int a[3]={1}是这个数组的数都是1对吗

如题所述

你的问题不光是初始化的问题

int i;

for(i=0;i<3;i++);
{
printf("%4d",a[i]);
}

主要出现在这

for(i=0;i<3;i++); 你的for循环后面接了一个分号,这样整个for就变成了空循环

而printf("%4d",a[i]);只执行了a[3]的输出(因为空循环中把i加到了3)

但你的数组只有a[0],a[1],a[2]

a[3]越界了

这样你输出的结果肯定是个很大的非法数字

正确写法

#include "stdafx.h"
#include <stdlib.h>

int _tmain(int argc, _TCHAR* argv[])
{
int a[3] = { 1,1,1 };
int i = 0;
for (i = 0; i < 3; i++)
{
printf("%d\n", a[i]);
}
system("pause");
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-25
不对,a[0]=1;a[1]=0;a[2]=0;追答

因为你只给了一个初始值,其他的是默认值0

有时间来知道提问,为何不上机试试?

追问

#include
int main()
{
int a[3]={1};
int i;
for(i=0;i<3;i++);
{
printf("%4d",a[i]);
}
return 0;
}
请你看看这程序有问题吗 为什么输出的不对

第2个回答  2019-06-27
不对 剩余的用零补充

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网