关于一道二级c的题

来源:百度知道 编辑:UC知道 时间:2024/06/20 08:17:09
#include "stdio.h"
main()
{int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;
clrscr();
for(i=0;i<12;i++) c[s[i]]++;
for(i=1;i<5;i++)
printf("%d",c[i]);
}

中c[s[i]]++;的意思是什么

s[i]中数组元素的值作为c数组的元素标号,并给对应的元素值加1,这个题是求0到4这几个数在s数组中重复的次数。

c[s[i]]++;

如果i的值为2的话就有s[2]=3;

所以上面那个就为:

c[3]++ 这个应该知道什么意思吧

当i=0时,S[i]=1,则c[s[i]]++;后,c[1]=1;如此下去,到i等于11时完.
其中,当i=7时,S[i]=1,则c[s[i]]++;后,c[1]=2;就是这样的.有什么不对,请指出.

i是int值,s【i】是int数组,他的值也是int值

其实很简单,你不要被它吓着,不就数组嘛,^_^
从里面往外看;
s[i] 对应的是一个常数吧,举个例子,从你的题目上看,当 i=8时,s[2]=3;
那么 c[s[2]]++就可以看做是 c[3]++;
c[3]++ 根据你题目中给的条件 c[5]={0};可以看出 c[3]的值为0;
那么再++,结果你该知道了吧,^_^!

就是当i赋值 会有对应s[i]等于假如n,
对应呢 c[n]也会有对应的值

还有就是数组是从0开始编号的
这个你应该知道吧