C语言的例子见图片,b(a(i))++是怎么实现统计的,第一个for循环应该是,i=0时ai=1?

请问一下,C语言的例子见图片,b(a(i))++是怎么实现统计的,第一个for循环应该是,i=0时ai=1?
最新回答
时光停驻于此

2024-05-03 04:34:58

i=0时
a[0]=1;
b
[a[0]]++等效于b[1]++,使用后b【1】变为1;
i=1时
a[i
]=5;
b
[5]++,b
[5]变为1。
i为5时
a[5]=1;
b
[1]++,此时b[1]变为2,
即此时已统计出a数组中数据为1的有两个。以此类推
晚安旧恋人

2024-05-03 01:56:55

用数组a的元素值作为b数组的下标;也就是说a数组中的元素出现一次,a中元素的值对应的b数组下标元素加1;
例如图中a数组中5出现了三次,那么对应的b数组下标为5的元素值就是3;
咱門都要狠快乐≥

2024-05-03 00:40:24

i=0时:a[i]==1; b[1]自加1 -> b[1]==1;
i=1时:a[i]==5; b[5]自加1 -> b[5]==1;
i=2时:a[i]==6; b[6]自加1 -> b[6]==1;
i=3时:a[i]==8; b[8]自加1 -> b[8]==1;
i=4时:a[i]==2; b[2]自加1 -> b[2]==1;
i=5时:a[i]==1; b[1]自加1 -> b[1]==2;
i=6时:a[i]==4; b[4]自加1 -> b[4]==1;
i=7时:a[i]==5; b[5]自加1 -> b[5]==2;
i=8时:a[i]==2; b[2]自加1 -> b[2]==2;
i=9时:a[i]==5; b[5]自加1 -> b[5]==3;
追问
那用printf显示后b[i]怎么不是上面的值呢?
追答
printf输出:
0出现的次数0
1出现的次数2
2出现的次数2
3出现的次数0
4出现的次数1
5出现的次数3
6出现的次数1
7出现的次数0
8出现的次数1
9出现的次数0