输入若干个正整数统计其中一位数中0~9分别出现的次数。,以ctrl+z作为结束符号。输出一位数中0~9分别出现的次数,未出现过的不用显示。最后以换行结尾.C语言
时间: 2024-12-16 07:20:52 浏览: 15
在C语言中,你可以通过循环结构、数组和计数器来实现这个功能。这里是一个简单的示例程序,它读取用户输入的正整数,并统计每个数字(0-9)出现的次数:
```c
#include <stdio.h>
#include <string.h>
#define MAX_DIGITS 10
void count_digits(int num[], int size) {
for (int i = 0; i < size && num[i] != '\0'; i++) {
if (num[i] >= '0' && num[i] <= '9') {
num[num[i] - '0']++;
}
}
}
int main() {
char input[100];
int digit_counts[MAX_DIGITS] = {0}; // 初始化计数器数组
printf("请输入正整数,用Ctrl+Z结束输入:\n");
fgets(input, sizeof(input), stdin); // 读取用户输入
// 检查是否已输入Ctrl+Z
if (input[strlen(input) - 1] == '\0') {
// 如果最后一个字符是'\0',则输入结束
input[strlen(input) - 1] = '\0'; // 清除换行符
} else {
while (input[strlen(input) - 1] != '\0') {
count_digits(input, strlen(input)); // 统计每一个输入数字
input = input[strlen(input)] == '\0' ? "" : input; // 移除最后一个字符并继续处理下一位
}
}
for (int i = 0; i < MAX_DIGITS; i++) {
if (digit_counts[i]) {
printf("数字 %d 出现了 %d次\n", i + '0', digit_counts[i]);
}
}
return 0;
}
```
在这个程序中,`count_digits`函数遍历输入字符串,如果遇到的是0到9之间的数字,就相应地增加对应的计数器。`main`函数负责获取用户的输入并调用该函数。
阅读全文