C语言救命啦,重点是过程,怎么得到的嘛??求各位大神啦,求程序的运行结果/,结果是: 5 3 2

#include <stdio.h>
main()
{
int count[4],x,i;
int a[10]={1,2,1,3,3,2,1,1,1,2};
for (i=1;i<=3;i++)
count[i]=0;
for(i=0;i<10;i++)
count[a[i]]+=1;
for(i=1;i<=3;i++)
printf("%4d",count[i]);
getch();
}
其中:for(i=0;i<10;i++)
count[a[i]]+=1;
是怎么运行啊,是不是把们个值加1 , 详细点了啦,谢谢谢谢大神。

i=0时a[0]=1,count[1]=count[1]+1=1;
i=1时a[1]=2,count[2]=count[2]+1=1;
i=2时a[2]=1,count[1]=count[1]+1=2;
i=3时a[3]=3,count[3]=count[3]+1=1;
i=4时a[4]=3,count[3]=count[3]+1=2;
i=5时a[5]=2,count[2]=count[2]+1=2;
i=6时a[6]=1,count[1]=count[1]+1=3;
i=7时a[7]=1,count[1]=count[1]+1=4;
i=8时a[8]=1,count[1]=count[1]+1=5;
i=9时a[2]=1,count[2]=count[2]+1=3;
所以输出是5 3 2;数组里的数是保存累加的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-26
#include <stdio.h>
main()
{
int count[4],x,i;
int a[10]={1,2,1,3,3,2,1,1,1,2};//输入的数组
for (i=1;i<=3;i++)
count[i]=0;//初始化
for(i=0;i<10;i++)
count[a[i]]+=1;//将数组a中值为a[i]的数个数存放在count数组下表为a[i]的地方,每个i对应一个a[i]的值
for(i=1;i<=3;i++)
printf("%4d",count[i]);
getch();
}
第2个回答  2010-12-26
首先a[0]=1,则count[1]的值加1;然后a[1]=2;则count[2]的值加1;a[3]=1,则count[1]的值加1;依次类推;count[a[i]]的值是随着a[i]=]={1,2,1,3,3,2,1,1,1,2}而变化的
相似回答