做题时只提交核心函数的代码即可
// 核心函数
int CountDigit(const int n, const int d) // 函数定义
{
int tmpNum = n; // 临时变量,用于存储n的绝对值
if (n < 0) // 如果n是负数,将其转换为正数
{
tmpNum = -tmpNum;
}
int digits[10] = {0}; // 用于统计0~9的数字出现的次数
do
{
++digits[tmpNum % 10]; // 统计个位数
tmpNum /= 10; // 去掉个位数
} while (tmpNum > 0);
return digits[d];
}
int Count_Digit(const int N, const int D)
{
return CountDigit(N, D); // 调用函数
}
本题要求实现一个函数,可统计任一整数中某个位数出现的次数。
例如-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> // printf, scanf的函数声明在这个头文件中
int Count_Digit(const int N, const int D); // 函数原型声明
int main(void) // 主函数
{
int N = 0; // 输入的整数
int D = 0; // 要统计的数字
scanf("%d %d", &N, &D); // 读取输入
printf("%d\n", Count_Digit(N, D)); // 调用函数
return 0;
}
int CountDigit(const int n, const int d) // 函数定义
{
int tmpNum = n; // 临时变量,用于存储n的绝对值
if (n < 0) // 如果n是负数,将其转换为正数
{
tmpNum = -tmpNum;
}
int digits[10] = {0}; // 用于统计0~9的数字出现的次数
do
{
++digits[tmpNum % 10]; // 统计个位数
tmpNum /= 10; // 去掉个位数
} while (tmpNum > 0);
return digits[d];
}
int Count_Digit(const int N, const int D)
{
return CountDigit(N, D); // 调用函数
}
输入样例:
-21252 2
输出样例:
3