C语言数组输入若干整数并统计输入整数个数
时间: 2023-09-03 10:09:52 浏览: 1262
可以使用循环来输入若干整数,并在每次输入时计数,代码如下:
```c
#include <stdio.h>
int main() {
int nums[100]; // 声明一个最多能存放100个整数的数组
int count = 0; // 计数器,记录输入的整数个数
int num; // 声明一个变量用于存放输入的整数
// 循环读入整数,直到输入的不是整数为止
while (scanf("%d", &num) == 1) {
nums[count] = num; // 将输入的整数存放到数组中
count++; // 计数器加1
}
printf("输入了%d个整数:\n", count);
// 遍历数组,输出输入的整数
for (int i = 0; i < count; i++) {
printf("%d ", nums[i]);
}
return 0;
}
```
在上面的代码中,我们声明了一个能存放100个整数的数组`nums`,并定义了计数器`count`和变量`num`。在循环中,我们使用`scanf()`函数读入一个整数,并将其存放到数组中,然后计数器加1。当输入的不是整数时,`scanf()`函数会返回0,此时循环终止。最后,我们输出输入的整数个数和输入的整数。
相关问题
c语言数组输入若干个整数
在 C 语言中,如果你想让用户输入若干个整数并存储在一个数组中,你可以使用循环结构,比如 `for` 或者 `while` 循环配合 `scanf` 函数来实现。这里是一个简单的示例:
```c
#include <stdio.h>
#define MAX_NUMS 10 // 定义数组最大容量
int main() {
int numbers[MAX_NUMS]; // 创建一个整数数组
int count = 0; // 记录输入的元素数量
printf("请输入你想输入的整数(最多 %d 个),输入-1结束:\n", MAX_NUMS - 1); // 提示用户输入
while (count < MAX_NUMS) { // 当元素数量小于数组容量时
int input;
scanf("%d", &input); // 读取用户的输入
if (input == -1) { // 用户输入 -1 表示停止输入
break;
}
numbers[count] = input; // 将输入的整数存入数组
count++; // 数量加一
}
// 打印输入的数组元素
for (int i = 0; i < count; i++) {
printf("第 %d 个数字是:%d\n", i + 1, numbers[i]);
}
return 0;
}
```
在这个程序中,用户可以输入任意数量的整数直到他们选择停止(输入 -1)。注意,实际应用中需要处理可能出现的输入错误,如非数字输入。
使用C语言编写 输入若干整数到一个列表,当输入负数时结束输入,计算这个列表中整数的平均数,输出这个列表中大于平均数的整数
在C语言中,你可以按照以下步骤来编写程序实现这一功能:
1. 首先,你需要创建一个动态数组来存储输入的整数,直到遇到负数为止。由于C语言没有内置的动态内存管理,你可以使用`malloc`和`realloc`函数来分配和调整内存大小。
```c
#include <stdio.h>
#include <stdlib.h>
int* create_list(int size) {
int* list = malloc(size * sizeof(int));
if (list == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
return list;
}
void input_numbers(int* list, int* size) {
int num, index = 0;
while (scanf("%d", &num) == 1 && num >= 0) {
list[index++] = num;
// 检查是否需要扩大数组容量
if (index == *size) {
*size *= 2; // 双倍当前大小
list = realloc(list, *size * sizeof(int));
if (list == NULL) {
printf("Realloc failed.\n");
exit(1);
}
}
}
}
```
2. 接下来,计算列表的平均值,并遍历列表找出大于平均数的整数。
```c
double calculate_average(int* list, int size) {
double sum = 0;
for (int i = 0; i < size; i++) {
sum += list[i];
}
return sum / size;
}
void print_greater_than_average(int* list, int size, double average) {
for (int i = 0; i < size; i++) {
if (list[i] > average) {
printf("%d ", list[i]);
}
}
printf("\n");
}
int main() {
int list_size = 1; // 初始数组大小
int* numbers = create_list(list_size);
// 用户输入和处理
input_numbers(numbers, &list_size);
// 计算平均值并打印结果
double average = calculate_average(numbers, list_size);
printf("Average: %.2f\n", average);
// 打印大于平均数的元素
print_greater_than_average(numbers, list_size, average);
free(numbers); // 释放内存
return 0;
}
```
阅读全文