如何查找数字0-9出现在整数中的时间

时间:2016-08-13 09:19:41

标签: c ansi-c

我需要一些代码帮助,因为heahline说我需要找到一个数字0-9出现在整数中的次数并打印出来如下: 300 在10的基础上 0:2 1:0 2:0 3:1 4:0 5:0 6:0 7:0 8:0 9:0 我试过了

#include <stdio.h>
#include <stdlib.h>

int main()

{

int num, div=1, rem, count=0, i;
printf("Enter Number: ");
scanf("%d", &num);
div = num;
for(i=1; i<=10; i++)
{
    div = num;
    while(div!< 0)
    {
    rem = div % 10;
    div = div / 10;


    if(i == rem)
    {
        count++;
    }


    if(i == rem && count >= 2)
        {
            printf("\n%d is present %d times", i, count);
        }
    }
}
return 0;
}

它返回正确的答案,但不是我需要的方式。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

此代码将为您提供每个数字的计数

#include <stdlib.h>
int main()
{
int num, div=1, rem,j,  i;
printf("Enter Number: ");
scanf("%d", &num);    //3002
div = num;
int count[10]={0,0,0,0,0,0,0,0,0,0};
while(div>0)
{

rem=div%10;
div=div/10;
printf("%d \n",rem);

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

if(rem==i)
{
count[i]=count[i]+1;
}
}
}
for(j=0;j<=9;j++)
{
printf("%d",count[j]);}
return 0;
 }

如果输入数字3002,它将输出为2011000000,表示2 0,1 2和1。