c语言统计出现个数,C语言统计数字出现的个数

程序功能:统计数字出现的个数

例如:输入1 2 3 1 2 4 2 3 1

输出:1 3

2 3

3 2

4 1

能看懂吗?就是1出现3次,2出现3次,3出现2次,4出现1次

#define M 50

main()

{int a[M],c[5],i,n=0,x;

scanf("%d",&x);

while (x!=-1)

{if (x>=0&&x<=4)

{a[n]=x;

n++;

}

scanf("%d",&x);

}

for (i=0;i<5;i++)

c[i]=0;

for (i=0;i

c[a[i]]++;

printf("\n");

for (i=1;i<=4;i++)

printf("%d %d\n",i,c[i]);

}

先把帖子中的程序讲解一下:

a[M]存放输入的数据;

c[5]存放0,1,2,3,4的个数;

i为循环时使用的变量;

n=0为输入时的数据个数增量,也即a数据的下标增长量;

x为输入时的临时变量。

其程序思想为:

1、定义一个50个int型的数组a来存放输入的数据。

2、定义一个5个int型的数组c来存放0,1,2,3,4的个数。

3、先输入一个数。

4、进入while循环,在其中可以反复输入数据。

5、按要求统计打印出所统计的数据个数。

由上可知,程序具有以下限制:

1、输入的数据个数不能超过50个。

2、统计的数字中,0没有统计打印出来。

3、程序只能统计数字1~4的个数,就通用性而言,如果要增加统计数字个数,就会使程序变得较长,并且使用了for循环来实现。如果要统计从0~9的每个数字的个数,那么其后就要使用10次for循环来实现统计。显然还可以具有其他方法实现。

4、从程序的效率来考虑,输入数据和统计数字个数,两者是分离的。如果当程序较大时;或统计较多时(如银行系统),程序将变得难以忍受。

5、其优点是可以存放保留了输入的数据,但不能超过50个数据。

结论:以上程序只是适用于较小的应用软件,或者是定制的应用程序。

下面我再提出一种程序思想,大家可以编制对比一下,这里就不给出代码了。

1、定制一个int型数组,用于存放0~9的数据个数。

2、定制变量x,用于存放输入的临时变量。

3、使用while循环来实现数据输入。

4、在循环中留有出口,可以使用kbhit()函数来实现,看一看函数库就行。

5、此项可选,定义一个int型数组a,用于存放输入的数据。

6、在输入数据后就直接

计算出数字的个数。不再单独利用for循环来进行统计,把输入和统计放在一起来实现。

以上方法叫做:计算任务量平均分配,因为把每次需要计算的任务量都平均分配到了用户在输入数据时的时间片里,用户感觉不到;一旦输入完毕,就可以立即打印结果。此种方法适合于大的软件工程,例如银行系统的数据统计

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值