荆州做网站公司/电脑培训班有哪些科目
本题来自pintia.cn
- 题目要求
- 分析
- 思路
- 代码
- 测试结果图
- PTA平台测试结果
题目要求
本题要求实现一个统计整数中指定数字的个数的简单函数。
函数接口定义:
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
分析
要统计一个数的某个数字出现次数,首先要把每一位的数字都读取到,再把读取到的数与输入的值比对,如果比对一致则在计数器中加一次。所以要用到循环语句,不过还要考虑数的范围,比如负数的值可以先换成相反数方便运算。如果输入的是个位数,则直接与digit比对。
思路
先用if语句判断数的范围,在if语句中嵌套循环语句对number连续除以10并取余。再使用if语句进行比较即可。
代码
int CountDigit( int number, int digit ){int cnt=0,flag;//定义计数器和表达参数if(number<0){number*=-1;}//是负数就取相反数输入while(number>=10){flag=number%10;number/=10;if(flag==digit){cnt++;}}if(number==digit){cnt++;}return cnt;
}
测试结果图
测试软件为Dev C++