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");
} 展开
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");
} 展开
7个回答
展开全部
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个就是判断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
c[5]={0}这个赋值c全部为零
c[s[i]]这个就是让s[i]的数据党c的下标
++就好说了,就晌指是c的那宴掘配个加上1
如党i是3的时候,s[i]是4,那么c[4]就自加1
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c[s[i]]++; //要分开来看
s[i] 的值,也就是数组定义的值,如果 i 等宽磨于 2,那么是s[2] = 3;
对于握巧改 c[s[i]]++; 来说段判,也就变成了 c[ 3 ]++;
明白了吗
s[i] 的值,也就是数组定义的值,如果 i 等宽磨于 2,那么是s[2] = 3;
对于握巧改 c[s[i]]++; 来说段判,也就变成了 c[ 3 ]++;
明白了吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询