逸之猿 2021-11-15 23:26 采纳率: 0%
浏览 36

求解到底哪错了?试了好几次了

本题要求实现一个统计整数中指定数字的个数的简单函数。
函数接口定义:

int CountDigit( int number, int digit );
其中number是不超过长整型的整数,digit为[0, 9]区间内的整数。函数CountDigit应返回number中digit出现的次数。

裁判测试程序样例:

#include <stdio.h>

int CountDigit( int number, int digit );

int main()
{
int number, digit;

scanf("%d %d", &number, &digit);
printf("Number of digit %d in %d: %d\n", digit, number, CountDigit(number, digit));

return 0;

}

/* 你的代码将被嵌在这里 */
输入样例:

-21252 2
结尾无空行
输出样例:

Number of digit 2 in -21252: 3
结尾无空行

我的代码:

int CountDigit( int number, int digit ){
int count=0,remainder;
if(number<0)
number*=-1;
else
number=number;
while(number>=10){
remainder=number%10;
number=number/10;
if(remainder==digit)
count+=1;
}
if(number>=0&&number<10)
if(number==digit)
count=1;
else
count=0;
return count;
}

img

  • 写回答

1条回答 默认 最新

  • 关注

    代码修改如下,修改部分已标注:

    int CountDigit( int number, int digit ){
        int count=0,remainder;
        if(number<0)
            number*=-1;
        else
            number=number;
        while(number>=10){
            remainder=number%10;
            number=number/10;
            if(remainder==digit)
                count+=1;
        }
        if(number>=0&&number<10)
            if(number==digit)
                count+=1; //修改1,不是=,而是+=
            else
                count+=0;//修改2,不是=,而是+=
        return count;
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月15日