请问c语言当中,如何统计数字各自出现的次数

请教一个问题:
在c语言当中,用数组的方法,统计输入的一串数字,统计其中各个数字出现的个数。比如:
1 2 3 4 4 1 3
这串数1出现了2次,2出现了一次,3出现了2次,4出现了两次。
请问高手怎么实现,不能用指针,因为还没学到。

实现代码:

#include <stdio.h>

int main() {

int num = 0, i = 0;

printf("请输入一个整数:");

scanf("%d", &num);

int array[10] = {};

while(num) {

array[num % 10]++;  //让数组下标代表所判断的数字 

num /= 10;

}

for (i = 0; i < 10; i++) {

if (array[i] != 0)

printf ("%d有%d个\n", i, array[i]);

return 0;

}

扩展资料:

printf用法:

printf()函数的调用格式为:printf("&lt;格式化字符串&gt;",&lt;参量表&gt;)。

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。

比如:

inta=1234;

printf("a=%d\n",a);

输出结果为a=1234。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-05-27

确定算法思路。

在C语言中,判断一个中某个数字出现的次数可以利用整型变量之间的求模运算和除法的特性来解决。求模运算相当于求。比如11%10的结果为1,123%10的结果为2,利用这种特性,在中,求除以10的余数就可以得到末尾的数字。

在C语言中,整型变量的除法中,商为不保留小数部分的结果,比如:3/2=1,102/10=10。因此可以不断除以10,就能去掉末尾数字。再结合求模运算,就可以从末尾到开头,依次得到每一位数字。

数据类型:

C的数据类型包括:整型(short、int、long、long long)、字符型(char)、实型或浮点型(单精度float和双精度double)、枚举类型(enum)、数组类型、结构体类型(struct)、类型(union)、指针类型和空类型(void)。

变量是以某为名字,其值可以改变的量。

标识符是以字母或开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。

本回答被网友采纳
第2个回答  推荐于2017-11-25
#include<stdio.h>
int main(void)
{ int num[10]={0} ; //定义数组,里面的元素全部为0,用来统计0--9出现的次数
int b[]={1,2,3,4,4,1,3}; //定义数组B,里面存放你要输入的数字串
int i ;
for(i=0;i<sizeof(b);i++)
num[ b[i] ] ++;
for(i=0;i<10;i++)
printf( "%d",num[i]);
return 0;
}本回答被提问者采纳
第3个回答  2012-04-11
定义
b[] ={1, 2 ,3 ,4 ,4 ,1 ,3}
a[10] = {0}
遍历b数组
a[b[i]]++;
最后输出a数组就行了。
第4个回答  2012-04-11
你可以定义几个变量用来统计各个数字出现的个数啊,它出现一次,变量就加1

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网