C语言输入未知个数的整数
时间: 2024-10-02 08:04:16 浏览: 111
在C语言中,如果你需要输入不确定数量的整数,可以使用循环结合数组或者动态内存分配来实现。这里提供两种常见的方法:
1. **使用数组**:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入整数的数量: ");
scanf("%d", &n); // 获取用户输入的整数个数
// 如果数组大小预先确定,如最大不超过100
int numbers[100];
for (int i = 0; i < n && i < 100; i++) {
scanf("%d", &numbers[i]); // 输入每个整数
}
// 或者直接使用动态大小数组(如果不确定大小)
// int *numbers = malloc(n * sizeof(int));
// if (numbers != NULL) {
// for (int i = 0; i < n; i++) {
// scanf("%d", &numbers[i]);
// }
// free(numbers); // 用完后记得释放内存
// }
// 打印输入的整数
for (int i = 0; i < n; i++) {
printf("第 %d 个数字是: %d\n", i+1, numbers[i]);
}
return 0;
}
```
2. **使用指针和结构体** (如果有多类型的数据需求):
```c
typedef struct {
int count;
int* numbers;
} IntList;
void input_numbers(IntList* list) {
list->count = 0;
int num;
while (scanf("%d", &num) == 1) {
list->numbers = realloc(list->numbers, (list->count + 1) * sizeof(int)); // 动态扩容数组
list->numbers[list->count++] = num;
}
}
int main() {
IntList list;
input_numbers(&list);
for (int i = 0; i < list.count; i++) {
printf("第 %d 个数字是: %d\n", i+1, list.numbers[i]);
}
free(list.numbers);
return 0;
}
```
在这个例子中,我们创建了一个结构体`IntList`来存储整数的个数和数组。
阅读全文