| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 653 人关注过本帖
标题:一维数组一道题,有些地方不知所云
只看楼主 加入收藏
tangwen88
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-11-5
收藏
 问题点数:0 回复次数:6 
一维数组一道题,有些地方不知所云
以知数组a[50]当中的数值都在0~9之中,统计每个数在数组中出现的次数.
#include "stdlib.h"
quzhi(int *a,int n) {int i;  for(i=0;i<n;i++)  a[i]=random(10);}
tongji(int *a,int *c)
   {int i; for(i=0;i<10;i++) c[i]++;    /*问题1*/
           for(i=0;i<50;i++) c[a[i]]++;}  /*问题2*/
shuqu(int *c,int n) {int i; for(i=0;i<n;i++) printf("%d ",c[i]);
main()
{int a[50],c[10];
quzhi(a,50);
tongji(a,c);
shuchu(c,10);
}
问题1:书上说的意思是给c[10]赋初值,那么可不可以不用这句循环,直接int c[10]={0}
问题2:这里的c[a[i]]++到底是什么意思,请详细说下
搜索更多相关主题的帖子: 不知所云 
2008-11-05 11:49
网易
Rank: 1
来 自:金星
等 级:禁止访问
帖 子:193
专家分:0
注 册:2008-6-10
收藏
得分:0 
for(i=0;i<10;i++) c[i]++;    /*问题1*/  //写错了 本应该就是int c[10]={0};

for(i=0;i<50;i++) c[a[i]]++;}  /*问题2*/  //c[a[i]]++;  统计用的

答案是:雨中飞燕!
2008-11-05 11:55
tangwen88
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-11-5
收藏
得分:0 
谢谢了,改了一下,可以运行了,就是c[a[i]]++请详细讲一下意思
2008-11-05 12:09
tangwen88
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-11-5
收藏
得分:0 
或者用容易看懂的表达式带替c[a[i]]++
2008-11-05 12:17
shmilytong
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2008-10-31
收藏
得分:0 
c[10]的作用是用来统计0~9出现的次数,这个楼主没什么疑问吧?我们给c[0]~c[9]都赋初值为0.
    a[i]产生0~9的随机整数,假设a[i]此时为8,那么也就是说c[a[i]]为c[8],此时也就是在统计数组a[]中出现整数8的次数了.
    额,不知道楼主明白了没……
2008-11-05 13:24
tangwen88
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-11-5
收藏
得分:0 
懂了c[a[i]]++和c[a[i]]=c[a[i]]+1一样
当a[i]=8时c[a[i]]=c[8]
因为c[]的初始值都为0,所以c[8]==0
当第一次a[i]=8时,c[8]对应的数=0+1因此这时候c[8]==1
第二次出现a[i]=8时,c[8]=c[8]+1==1+1==2
终于明白了,谢谢各位
2008-11-05 16:00
whytk
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-11-5
收藏
得分:0 
c[a[i]]++:是用来统计出现0~9的次数,因为a[i]属于0~9
2008-11-05 16:13
快速回复:一维数组一道题,有些地方不知所云
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022389 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved