c语言自由输入数据个数
时间: 2024-10-27 20:15:14 浏览: 15
在C语言中,如果需要让用户自由输入数据并不确定具体输入的个数,可以采用动态内存分配和循环结构结合的方式来实现。通常的做法是使用`scanf()`函数获取用户输入,并用`malloc()`或`calloc()`动态分配内存,然后通过一个计数变量来控制循环次数。
例如:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int num, *data; // 定义整型数组指针和计数器
printf("请输入数据的个数: ");
scanf("%d", &num); // 获取用户输入的数据个数
// 检查输入是否合法,防止负数或溢出
if (num <= 0) {
printf("输入错误,请输入正整数。\n");
return 1;
}
data = (int*) malloc(num * sizeof(int)); // 动态分配内存
if (!data) { // 内存分配失败处理
perror("Memory allocation failed");
return 1;
}
for (int i = 0; i < num; i++) { // 循环读取并存储每个值
printf("请输入第 %d 个数值: ", i + 1);
scanf("%d", &data[i]);
}
// 然后你可以对这些输入的数据进行操作...
// ...
free(data); // 使用完后释放内存
return 0;
}
阅读全文