回 帖 发 新 帖 刷新版面

主题:求救!!!!!!!!!!

    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!
    不理解?

回复列表 (共4个回复)

沙发

????

板凳


可以请哪位详解下吗

3 楼

这么看吧,lz可以心算执行下这一小段c[s[i]]只有c[1],c[2],c[3],c[4]四个
那么数数他们++的次数,问题则不再是问题了

4 楼

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.

我来回复

您尚未登录,请登录后再回复。点此登录或注册