主题:求救!!!!!!!!!!
Long1220
[专家分:0] 发布于 2011-03-10 21:53:00
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");
运行结果为4332!
不理解?
最后更新于:2011-03-11 10:25:00
回复列表 (共4个回复)
沙发
hereforc [专家分:210] 发布于 2011-03-11 00:29:00
????
板凳
Long1220 [专家分:0] 发布于 2011-03-11 10:24:00
可以请哪位详解下吗
3 楼
fragileeye [专家分:1990] 发布于 2011-03-11 23:37:00
这么看吧,lz可以心算执行下这一小段c[s[i]]只有c[1],c[2],c[3],c[4]四个
那么数数他们++的次数,问题则不再是问题了
4 楼
cctarena [专家分:50] 发布于 2011-03-12 11:53:00
c[s[i]]++中 执行i从0到11 得到s[i]的值只有0,1,2,3,4这四个数,而且1重复出现了4次,2重复出现了3次,3重复出现了3次,4重复出现了2次。则相当于c[1]++执行了4次,c[2]++执行了3次,c[3]++执行了3次,c[4]++执行了2次。。所以后面打出的结果为4332.
我来回复