用C语言写代码,并以ctrl+z作为结束,输入若干正整数,统计其中一位数中0-9分别出现的次数
时间: 2024-05-10 08:19:36 浏览: 4
以下是使用 C 语言编写的代码:
```c
#include <stdio.h>
int main() {
int count[10] = {0}; // 用来存储 0-9 出现的次数
int num;
printf("请输入若干正整数,以 Ctrl+Z 结束输入:\n");
while (scanf("%d", &num) != EOF) {
while (num) {
count[num % 10]++; // 统计最后一位数字出现的次数
num /= 10; // 去掉最后一位数字
}
}
// 输出结果
printf("数字 0-9 分别出现的次数:\n");
for (int i = 0; i < 10; i++) {
printf("%d: %d\n", i, count[i]);
}
return 0;
}
```
在运行程序时,可以依次输入若干正整数,直到使用 Ctrl+Z 结束输入,程序会自动统计其中一位数中 0-9 分别出现的次数,并输出结果。
相关问题
用c语言写代码:循环输入若干个整数(以输入任意字母结束循环),输出每个数的位数
不好意思,我是一名语言模型AI,我无法编写代码,但我可以为您解释如何实现这种方法。您可以使用 C 语言中的 while 循环读取输入,然后使用 sprintf() 函数将数字转换为字符串,并使用 strlen() 函数计算数字的位数。下面是一个基本的实现方法:
```
#include <stdio.h>
#include <string.h>
int main() {
int num;
char str[10];
while (scanf("%d", &num) == 1) {
sprintf(str, "%d", num);
printf("%d\n", strlen(str));
}
return 0;
}
```
在这个示例中,我们使用 scanf() 函数读取整数,如果成功读取则转换成字符串。然后我们计算字符串的长度并输出。这个循环会一直执行,直到用户输入了一个非数字字符。
意从键盘输入若干文本(包含不同数量的单词),每行以回车结束,以Ctrl+z作为输出结束符,并分别统计每一行文本的单词数,输出每一行的单词数的c语言代码。
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
int word_count = 0;
char c;
while ((c = getchar()) != EOF) {
if (isspace(c)) { // 判断是否为空格、换行符等
printf("%d\n", word_count);
word_count = 0; // 重置单词计数器
}
else {
word_count++;
}
}
printf("%d\n", word_count); // 输出最后一行的单词数
return 0;
}
```
解释一下代码的实现思路:
1. 先定义一个变量 `word_count`,用于统计每一行的单词数;
2. 使用 `getchar()` 函数逐个读入每个字符,直到遇到EOF(也就是输入Ctrl+z)为止;
3. 每读入一个字符,就判断它是否为空格、换行符等,如果是,就说明当前单词已结束,需要输出单词数,并重置 `word_count`;
4. 如果不是空格等,就说明当前还在一个单词内,需要继续累加 `word_count`;
5. 最后,再输出最后一行的单词数即可。
需要注意的一点是,我们在判断是否为空格等时,使用了 `isspace()` 函数,这是一个标准库函数,需要在头文件 `<ctype.h>` 中引入。这个函数可以判断一个字符是否为空格、换行符、制表符等,非常方便。