浙大版《C语言程序设计(第3版)》题目集 习题5-5 使用函数统计指定数字的个数
  5PSMIrBt98OW 2023年11月02日 28 0

浙大版《C语言程序设计(第3版)》题目集 习题5-5 使用函数统计指定数字的个数_整型

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

函数接口定义:

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;
if (number < 0)//判断输入的数是否为负,若为负数转换为正数
number = -number;
while (number)
{
if (number % 10 == digit)
count++;
number = number / 10;
if (number == 0)
break;
}
return count;
}

代码详解:

题中已说明number和dight的类型和范围。

如果要统计整数中指定数字的个数,我们应该对于该整数的每一位进行判断。

若整数为负,会影响我们判断,所以我们将负数转换为整数。而且数的正负不会影响指定数字的个数。

if (number < 0)//判断输入的数是否为负,若为负数转换为正数
number = -number;

接下来我们对非负整数的每一位进行判断,用number % 10 == digit语句可以对当前数的个位进行判断,如果我们要判断十位、百位等,需要在循环中进行number=number/10,这样下次判断是就是原来数的十位了。

while (number)
{
if (number % 10 == digit)
count++;
number = number / 10;
if (number == 0)
break;
}

我们用count对需要判断的数进行计数,请注意count在循环前一定要归零,不然统计结果会受到影响。


如有更好的方法欢迎留言!

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  PVcilKyJJTzb   2023年11月02日   57   0   0 Bashdockergit
  PVcilKyJJTzb   2023年11月02日   43   0   0 git推送github
5PSMIrBt98OW