C语言,从键盘输入若干个整数,其值在0至9范围内,用-1作为输入结束的标志。统计每个整数的个数
时间: 2024-11-16 09:20:28 浏览: 27
在C语言中,你可以使用循环结构(如`for`或`while`)配合数组或者哈希表(如果要用到动态内存管理,可以使用`malloc`和`free`函数)来实现这个功能。下面是一个简单的示例,我们将使用数组来存储每个数字及其出现的次数:
```c
#include <stdio.h>
#define MAX_DIGITS 10 // 定义最多存储的数字个数
int main() {
int count[MAX_DIGITS] = {0}; // 初始化计数器数组为0
int num;
printf("请输入0-9范围内的整数(-1结束): ");
while (scanf("%d", &num) == 1 && num >= 0 && num <= 9) { // 循环读取直到遇到-1
count[num]++;
}
for (int i = 0; i < MAX_DIGITS; i++) {
if (count[i] > 0) { // 只显示非零计数值
printf("数字%d出现了 %d 次。\n", i, count[i]);
}
}
return 0;
}
```
在这个程序中,用户会一直输入数字,每输入一个,我们就检查它是否在0-9范围内,并将其对应的计数器加一。当输入-1时,跳出循环并显示每个数字及其出现的次数。
相关问题
从键盘输入若干整数(个数应少于50个)其值在0-4的范围内 用-1作为输入结束的标志,统计每个整数的个数C语言
在C语言中,你可以使用一个结构数组结合循环来实现这个功能。这里是一个简单的示例:
```c
#include <stdio.h>
#define MAX_VALUES 50
// 定义结构体存储整数及其计数
typedef struct {
int value;
int count;
} IntCount;
int main() {
IntCount counts[MAX_VALUES];
int input;
// 初始化所有计数为0
for (int i = 0; i < MAX_VALUES; i++) {
counts[i].value = 0;
counts[i].count = 0;
}
// 循环读取用户输入直到遇到-1
while ((input = getchar()) != -1 && input >= 0 && input <= 4) {
counts[input].count++;
}
// 输出每个整数及其出现次数
printf("Number distribution:\n");
for (int i = 0; i < MAX_VALUES; i++) {
if (counts[i].count > 0) {
printf("%d: %d times\n", i, counts[i].count);
}
}
return 0;
}
```
在这个程序中,我们首先创建了一个大小为50的IntCount数组,并初始化所有元素的计数为0。然后通过`getchar()`函数持续读取用户的输入,如果输入的是0到4之间的整数,就增加对应计数。当读取到-1时,跳出循环,最后打印出每个整数及其出现的次数。
C语言从键盘输入若干整数(数据个数应少于 50),其值在 0~4的范围内,用-1作为输入结束的标志。统计每个整数的个数。
在C语言中,你可以使用循环结构以及数组来实现这个功能。下面是一个简单的示例程序:
```c
#include <stdio.h>
#define MAX_NUMS 50
int main() {
int nums[MAX_NUMS] = {0}; // 初始化一个大小为MAX_NUMS的计数数组
int input, count = 0;
printf("请输入0到4之间的整数(-1结束): \n");
while (scanf("%d", &input) == 1 && input >= 0 && input <= 4) {
nums[input]++;
count++; // 每次输入有效数字,计数器加一
}
for (int i = 0; i <= 4; i++) {
if (nums[i]) {
printf("数字%d出现了 %d 次。\n", i, nums[i]);
}
}
if (count == 0) {
printf("未输入任何数字。\n");
} else {
printf("共输入了 %d 个整数。\n", count);
}
return 0;
}
```
在这个程序中,我们首先创建了一个大小为50的数组`nums`来存储各个数字及其对应的个数。然后通过一个while循环持续读取用户的输入,如果输入的是-1则跳出循环。对于每个有效的输入,我们就增加对应位置的计数,并更新总输入次数。最后,遍历数组并打印出每个数字及其出现的次数。
阅读全文