天天看点

取一个数的各个数位的数字

今天做C语言的题,遇到了计算一个数的相同数字的个数,冥思苦想,上厕所都在想,想过取余想过除10但是没想在一起,最后查了答案。

a = number%10;  //这是取到个位

number = number/10;  //因为是int变量,所以直接除以10就相当于把个位数字抹去了

循环计a的数就行了。

我把题目贴下面。

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;
}

/* 你的代码将被嵌在这里 */
           

 最后函数

int CountDigit( int number, int digit )

{   int a=0; int s=0;

    if(number<0) number = -number;

    if(number == 0) 

        if(digit == 0)return 1;

           else return 0;

    while(number!=0)

    {

        a = number%10;

        if(a == digit)

            s++;

        number = number/10;

    }

    return s;

}