. 编写程序,输入一个数字,统计这个数的各个位上的数字总共出现了几次,最后按照从小到大进行输出。(只输出出现过的数字,没有出现的数字不输出)。(20分)**用C语言
时间: 2024-10-29 09:20:12 浏览: 7
为了编写一个C语言程序来完成这个任务,你需要创建一个循环结构来读取输入的数字,并对每个位上的数字进行计数。然后,你可以使用一个数组或者哈希表来存储并跟踪每个数字的出现次数。最后,将结果按照升序输出出现过的数字。
以下是一个简单的示例程序,使用数组来存储每个数字的出现次数:
```c
#include <stdio.h>
#define MAX_DIGITS 10 // 假设输入的数字最多有10位
int main() {
int num, count[MAX_DIGITS] = {0}; // 初始化计数数组为0
char digit;
printf("请输入一个整数:");
scanf("%d", &num);
while (num != 0) {
digit = num % 10; // 取余数得到当前位的数字
count[digit]++;
num /= 10; // 移除最低位
}
for (int i = 0; i <= 9; i++) {
if (count[i] > 0) {
printf("%d 出现了 %d 次, ", i, count[i]);
}
}
return 0;
}
```
在这个程序中,我们首先读取用户输入的数字`num`,然后通过`%`运算符获取每一位数字并累加到相应的计数数组`count`中。当`num`变为0时,说明所有位都已经处理过。最后,遍历数组并打印出那些出现过的数字及其对应的次数。
阅读全文