习题5-5 使用函数统计指定数字的个数 (15 point(s))

本题要求实现一个统计整数中指定数字的个数的简单函数。

函数接口定义:

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 cnt=0; //统计digit数字在number出现的次数
	if(number<0) number=-number; //如果number是负数 就变成正数
//	if(number==0) cnt=1; //do while循环可以少写这一条,while需要写这一条(因为number等于0时不会进入while循环,而do while是无条件进入在判断)
	do
	{
    
     //(0%10==0 所以cnt计数器会加一然后退出循环)
		if(digit==(number%10)) cnt++; //如果取模(取最后一位数)等于我们要查找的数,计数器加一
		number/=10; //每次循环到底部整除10把后一位去除掉
	}while(number);
	return cnt; //返回cnt给 CountDigit
}

猜你喜欢

转载自blog.csdn.net/qq_44715943/article/details/114584004