69,365
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
void main(){
int countdigit(long number,int digit);
int i,repeat;
int count;
long in;
printf("Input repeat:\n");
scanf("%d",&repeat);
for(i=1;i<=repeat;i++){
printf("Input a number:\n");
scanf("%ld",&in);
count=countdigit(in,2);
printf("count=%d\n",count); }
}
int countdigit(long number,int digit)
{
int num,count=0;
number=number<0?-number:number;
while(number)
{
num=number%10;
if(num==digit)count++;
number/=10;
}
return count;
}
#include <stdio.h>
int countdigit(long number,int digit);
int main(void)
{
int i,repeat;
int count;
long in;
printf("Input repeat:\n");
scanf("%d", &repeat);
for (i = 1; i <= repeat; i++) {
printf("Input a number:\n");
scanf("%ld", &in);
count = countdigit(in,2);
printf("count=%d\n",count);
}
return 0;
}
int countdigit(long number,int digit)
{
int num,count=0;
number = number < 0 ? -number : number;
while (number) {
num = number % 10; /*should number, not num,*/
if(num == digit)
count++;
number/=10;
}
return count;
}
原因很简单,就是这句改成这样:
num = number % 10;