全部问题 > 当前问题

最后一个例题2008年4月份选择题,完全想不明白怎么回事。求解答。

# include<stdio.h>

main()

{

int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;

for(i=0;i<12;i++) c[s[i]]++;

for(i=1;i<5;i++) printf("%d",c[i]);

printf("\n");

}

c[5]={0}

c[0]=0;

c[1]=0;

c[2]=0;

c[3]=0;

c[4]=0;

为什么运行之后会变成4332?

匿名课官 2017-9-10 20:35:46

共 2 个回答

qqq 2017-9-10 22:00:53

你慢慢看这段代码,c的下标是s[i]的值,因为s数组中没有0,所以c[0]依然是初始化时的0,s数组中有4个1,所以c[1]会从0自增4次也就变成4了,依次类推,c[2]就是s数组中2的个数,也就是3,下面应该好懂吧。

匿名课官 2017-9-12 20:38:55

回复 qqq:谢谢!

问题来自: 数组的定义