C语言中 c[s[i]]++ 怎么理解? 5

#include<stdio.h>main(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i+... #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");
}
展开
 我来答
匿名用户
2013-09-20
展开全部

举个例吧

比如i=2,s[2]=3, 那么 c[s[2]]就是枯闭世c[3]   又因为c[5]={0}, c[3]也是=0,c[3]++执行完 就是c[3]=1这样

用绘画板写执态晌行顺序给你看看没肢吧

+1表示执行c[s[i]]++

就这样依次类推知道i=11

 

通俗的说  就是S[]数组的值作为C数组的序号从而 进行C数组序号对应的值自加

天云小店
推荐于2017-09-07 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:778万
展开全部

c[s[i]]++是对数组与数组下标的操作运算。可分为如下几袜仿步进行理解:

int a, b;
a = s[i];  // 将数组c的下标赋值给变量a
c[s[i]] = c[a];  
b = c[a]; 档历// 将数组c的第a+1个元素值赋值给变量b
c[s[i]]++ = b++


下面通过举例来具体说明:

int s[] = {9, 3, 2, 5};

int c[] = {3, 2, 12, 4, 6};

int i = 2;

int b = c[s[i]]++;   // b=13


解释如下告蠢纤:

c[s[i]]++ = c[s[2]]++ = c[2]++ = 12++ = 12+1=13,即:

首先,s[i]=s[2]=2

之后,c[2]=12

最后,c[2]++ = 12+1=13

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cpucash
2013-09-20 · TA获得超过1584个赞
知道小有建树答主
回答量:1457
采纳率:66%
帮助的人:966万
展开全部
这个就是判断s中散枣0 1 2 3 4 出现的次数
c[5]={0}这个赋值c全部为零
c[s[i]]这个就是让s[i]的数据党c的下标
++就好说了,就晌指是c的那宴掘配个加上1
如党i是3的时候,s[i]是4,那么c[4]就自加1
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小棍ing
2013-09-20 · 超过17用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:29.2万
展开全部
s[i]是数组s[]中的第i个元素,比如:s[2]=3;c[]也是一个数组,只不过数组正码中所有的元素都是0;c[s[i]],就悔清丛是数组c中的第s[i] 个元素,如果i=2,则s[i]=3,c[3]=0;c[s[i]]++,就碧樱是该元素加1,c[3]++=1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cjj796
2013-09-20 · TA获得超过8708个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3440万
展开全部
c[s[i]]++; //要分开来看

s[i] 的值,也就是数组定义的值,如果 i 等宽磨于 2,那么是s[2] = 3;

对于握巧改 c[s[i]]++; 来说段判,也就变成了 c[ 3 ]++;

明白了吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式