8.1.3 数组的例子----统计个数

看过数组的理论之后,我们再来看一个应用题:写一个程序,输入数量不确定的[0,9]范围内的整数,统计每一种数字出现的次数,输入-1表示结束.那我们要记录每个输入的数字吗?不需要.那我需要记录什么呢, 我们要记录的是每一种数字出现过多少次.所以我们需要十个变量就可以了.十个变量太复杂我们可不可以用数组? 我们来看这程序要怎么写:

显然我们需要有一个x,并且我们需要读入这个x.当x不等于-1时,我们要去做我们的事情,当这轮循环准备结束的时候我们还要把下一个x读进来.要做的事情是什么呢,当x>=0且x<=9时,我们让计数器++.这个计数器又是什么,我们不妨定义一个数组cnt[10];count[0]就代表0这个数字出现了多少次,1就代表count[1]这个数字出现了多少次,以此类推.所以在读到了x之后,我们要做的是先判断是否是符合范围的数,然后如果在[0,9]范围内则让count[x]++.这些都做完的时候,我们要去遍历整个数组,让i从0走到9,并打印出每个数组单元,即每个数字出现了多少次.当然,既然我们这里有一个数组,那么我们就应该在合适的地方进行初始化,在在定义数组之后,我们用for循环遍历数组的每一个单元,初始化它们的值为0.最后再在开头加上int i;简单来说,我们这个程序的思路,就是读进来一个数,然后把这个数作为数组下标并让其++,然后继续输入数字,直到结果为-1,退出循环并从0到9打印所有count[i];代码如下:

当然我们说,这个程序还有能改进的地方,就是我们出现了三次10,这三个10意义不明,也就是我们提过的magic number.因为这三个10的意义相同,我们可以定义一个const int num=10,然后后面的10都用这个num替代.改进如下:

这就是我们做出来用于统计个数的程序.我们看到我们这个程序是非常经典的一个使用数组的程序.首先我们定义了一个const的变量如number来决定我们数组的大小,然后我们需要定义那个数组,它的大小是number.接着我们必须去初始化那个数组,因为数组变量和本地变量一样,不会被默认初始化.初始化每个数组中的元素很麻烦,所以你得写循环去遍历数组,去给每个元素赋值.然后在后面的代码中,数组需要参与运算.最后再遍历数组,把每一个单元输出.通常我们用到数组的程序都需要这么一些环节.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值