本题要求实现一个统计整数中指定数字的个数的简单函数。
函数接口定义:
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;
int a;
if(number<0){
number=-number;
}
while(number<214748367){
a=number%10;
number=number/10;
if(a==digit){
count++;
}
if(number==0){
break;
}
}
return count;
}
注意点
- 负数求余后符号跟前数一致3%-2=1,-3%2=-1,此题正负不影响,所以取正
- 循环要考虑跳出循环条件
- number循环除10,当number为0时就是退出条件
- 此时break或令count=0