C语言 怎么确定一段数字中某个数字有几个

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 怎么确定一段数字中某个数字有几个相关的知识,希望对你有一定的参考价值。

这个很简单的。
#include "stdio.h"
int main()

int a[20]=9,5,7,6,8,1,2,7,9,2,4,6,8,2,7,9,1,0,5,4;
int sum=0;
int N;
scanf("%d",&N);//输入你要查询个数的数字
for(int i=0;i<20;i++)

if(a[i]==N)
sum++;

printf("%d\n",sum);
return 0;
参考技术A 可以用数组来存储,一次就可以分析所有数字的个数:

供您参考:

#include<stdio.h>
#include<string.h>
int main()
int digit[10]=0;
char* d ="123414058140657790834";/*需要分析的数字串*/
int index,p;
for(index=0;index<strlen(d);index++)
p = d[index] - '0';
digit[p]++;

for(index=0;index<10;index++)
printf("%d:%d\n",index,digit[index]);

return 0;
参考技术B int count(unsigned int b,unsigned int num)

int c=0;
while(num>0)

if(num%10==b) c++;
num=num/10;

return c;

调用这个函数就可以得到有几个数字了
参考技术C 注意输入值的范围!

#include "stdio.h"
#define N 10
main()

int a[N];
int i,j;
int Find_search,num=0;
long number;
printf("Please input number:\n");
scanf("%d",&number);
for(i=0;number>0;number/=10)

a[i]=number%10;
i++;

printf("Please input Find_search:\n");
scanf("%d",&Find_search);
for(j=0;j<i;j++)
if(a[j]==Find_search)
num++;
printf("The number of digits:%d\n",num);


如果对你有所帮助,请记得采纳最佳答案,谢谢!本回答被提问者采纳

python如何统计list有几个连续的数字

比如mylist = [1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,11,0]
怎么写才可以知道1最多连续出现4次。 0最多出现4次呢?

mylist = [1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,11,0]

result = 
tmp = None
for i in mylist:
        if not result.has_key(i):
        #新出现的值为1
                result[i] = 'tmpcount':1,'maxcount':1
        else:
                if i == tmp :
                #同上一次相同,tmpcount数字加一,同时更新maxcount
                        result[tmp]['tmpcount'] = result[tmp]['tmpcount'] + 1
                        if result[tmp]['maxcount'] < result[tmp]['tmpcount']:
                                result[tmp]['maxcount'] = result[tmp]['tmpcount']
                else:
                #如果不同,上次数字的tmpcount归零,这次的数字的tmpcount归一
                        result[i]['tmpcount'] = 1
                        result[tmp]['tmpcount'] =  0                  
        tmp = i

for j,k in result.items():
        print '数字' + str(j) + '出现的最大连续次数为' + str(k['maxcount'])

 试试这个,有点麻烦但应该可以解决这个问题

参考技术A

先使用itertools.groupby,对每个连续的数字进行分组

import itertools
num_times = [(k, len(list(v))) for k, v in itertools.groupby(mylist)]

这样得到的num_times是每个数字连续出现的次数

num_times = [
(1, 2), (0, 1), (1, 3), 
(0, 4), (1, 4), (0, 1), 
(1, 1), (0, 1), (11, 1), 
(0, 1)]

然后对每个数字,统计出现的最大次数,这一步比较简单就自己想想吧

追问

有简单的方法吗 不要import的

追答

越要简单越应该用标准库啊

参考技术B mylist = [1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1,0]    
mystr=''.join(map(str,mylist))   #先转化为字符串
for i in set(mystr):
    print(i,max(list(map(lambda x:len(x),[j for j in mystr.split(i)]))))  #使用map跟lambda函数对分割后的列表各元素求长度

缺陷是只能处理列表中只有两种数字的

后来改了一下 先可以把列表变为只有0跟1的数据  然后再按上面的思路来

mylist = [1,1,0,1,1,2,2,1,0,0,0,0,1,1,2,2,2,1,1,0,1,0,1,2,2,1,0]   
for j in set(mylist):
    list1=[1 if i==j else 0 for i in mylist ]
    mystr=''.join(map(str,list1))
    print(j,max(list(map(lambda x:len(x),[j for j in mystr.split('0')]))))

以上是关于C语言 怎么确定一段数字中某个数字有几个的主要内容,如果未能解决你的问题,请参考以下文章

找出数组中重复的数字(c语言)

C语言如何判断输入数字的个数

c语言猜数游戏编程

C语言,怎么判定,是否数字?

求解编程题目<猜数字>C++/C

如何用c语言判断222723272中数字2出现的次数