热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C语言实现:计算int类型整数的位数及各数字出现次数

本文介绍了一种使用C语言编程的方法,通过用户输入一个int类型的整数,利用循环和数组统计出该整数的总位数以及每个数字出现的具体次数。

在C语言中,实现一个功能,即接收用户从键盘输入的一个int类型的整数,并准确计算出这个整数的总位数以及其中每个数字(0-9)出现的次数。此过程不仅涉及到基本的数学运算,如取模(%)和除法(/),还需要运用到数组来存储每个数字出现的频率。

例如,如果用户输入了整数16644,则程序应输出该整数共5位,其中包括1个1,2个6,2个4。

以下是程序的运行示例:

输入12226↙

输出:
12226: 5 bits
1: 1
2: 3
6: 1

对于负数的处理,程序同样适用。例如,当输入-12243时,输出为:
-12243: 5 bits
1: 1
2: 2
3: 1
4: 1

为了确保程序能够正确读取用户的输入,采用了标准的输入输出格式:“%d”。同时,为了提供更好的用户体验,程序开始时会显示提示信息:“Please enter the number:
”。随后,程序将按照预设的格式输出计算结果。

以下是实现这一功能的C语言代码片段:

#include 
#include

int main() {
printf("Please enter the number:\n");
int num, digit, count = 0, digitsCount[10] = {0};
scanf("%d", &num);
int absNum = num <0 ? -num : num;

while (absNum > 0) {
digit = absNum % 10;
digitsCount[digit]++;
absNum /= 10;
count++;
}

printf("%d: %d bits\n", num, count);
for (int i = 0; i <10; i++) {
if (digitsCount[i] != 0)
printf("%d: %d\n", i, digitsCount[i]);
}

return 0;
}

本题目主要考察点包括:
1. 如何计算一个整数的位数。
2. 如何统计一个整数中每个数字出现的次数。

解决思路:
首先,通过取模操作(num % 10)获取当前整数的最低位数字,并将其计数增加。接着,通过整除10(num /= 10)去除已经处理过的最低位数字,继续处理下一位。重复上述步骤直到整个整数被处理完毕。在此过程中,使用一个大小为10的数组来记录每个数字(0-9)出现的次数。此外,还需特别注意对负数的处理,确保其绝对值被用于计算。


推荐阅读
  • 本文档提供了数据结构在C语言中的实现示例,特别是解决二次方程的代码片段,以及《数据结构(用面向对象方法与C++语言描述)第二版》的部分习题答案。 ... [详细]
  • A题简单判断#includeusingnamespacestd;typedeflonglongll;intt;intmain(){cint;whil ... [详细]
  • 一个产品数组拼图|集合 2 (O(1)空间) ... [详细]
  • 本文探讨如何使用C语言开发一个座位分配系统,包括飞机座位选择、考场座位随机分配等功能,并提供了详细的代码示例。 ... [详细]
  • 题目描述:孩子们围坐在一起,分享水果,场面温馨。然而,由于孩子们身高不同,排队时显得高低不齐。给定孩子们的身高序列,通过交换某些孩子的顺序,计算每次交换后的序列混乱度。 ... [详细]
  • 基于函数实现的进制转换工具
    本文介绍了一种利用函数实现不同进制数(二进制、八进制、十进制)之间转换的方法。包括了程序的运行效果展示、所使用的主要函数解析、以及如何验证用户输入的合法性。整个项目仅使用了两个全局变量来存储用户的选项和输入的数值。 ... [详细]
  • 打印给定范围内的所有完美方块 ... [详细]
  • 在链表中删除指定值的节点题目描述给出一个链表和一个整数num,输出删除链表中节点值等于num的节点之后的链表。输入描述:第一行一个整数n ... [详细]
  • C语言实现句子中单词顺序反转
    本题源自《C语言程序设计——现代方法》第八章编程练习14,要求编写一个程序,能够接收用户输入的一句话,并将其中的单词顺序进行反转。 ... [详细]
  • 题目概述:给定一个数组,计算其中所有连续子序列中平均值不低于给定值k的数量。通过将每个元素减去k并计算前缀和,问题转化为二维数点问题。此问题可以通过离线处理,利用树状数组来高效解决。 ... [详细]
  • 本文通过具体示例探讨了在 C++ 中使用 extern "C" 的重要性及其作用,特别是如何影响编译后的对象文件中的符号名称。 ... [详细]
  • 本文档提供了一个使用C语言进行字符串处理的示例,通过输入两个以加号分隔的数字字符串,并计算它们的和。 ... [详细]
  • 程序打印菱形 ... [详细]
  • 双连通分量(biconnectedcomponent,简称bcc)概念:双连通分量有点双连通分量和边双连通分量两种。若一个无向图中的去掉任意一个节点( ... [详细]
  • HDU2044 蜜蜂的路径选择
    题目描述了一只训练有素的蜜蜂,它只能向右移动到相邻的蜂巢,不能后退。任务是计算从一个指定的蜂巢a移动到另一个指定的蜂巢b的所有可能路径数量。 ... [详细]
author-avatar
a171759015_753
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有