本题要求实现一个函数,可统计任一整数中某个位数出现的次数。例如 -21252 中,2 出现了 3 次,则该函数应该返回 3。
函数接口定义:
int Count_Digit ( const int N, const int D );
其中 N 和 D 都是用户传入的参数。N 的值不超过 int 的范围;D 是 [0, 9] 区间内的个位数。函数须返回 N 中 D 出现的次数。
裁判测试程序样例:
#include <stdio.h>
int Count_Digit ( const int N, const int D );
int main()
{
int N, D;
scanf("%d %d", &N, &D);
printf("%d\n", Count_Digit(N, D));
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
-21252 2
输出样例:
3
来源:
来源:PTA | 程序设计类实验辅助教学平台
提交:
题解:
/*
* 统计任一整数 N 中某个位数 D 出现的次数
*/
int Count_Digit(const int N, const int D) {
// N 为 const 常量,故赋值给 n。保证 n 是非负数
int n = N < 0 ? -N : N;
// 记录 N 中 D 出现的次数,特殊处理为 0 的情况
int cnt = (N == 0 && D == 0) ? 1 : 0;
// 获取数字 N 的各位数字并统计数字 D 出现的次数
while (n != 0) {
int lastNumber = n % 10;
if (lastNumber == D) {
cnt++;
}
n /= 10;
}
return cnt;
}