多行不固定数目的整数输入进数组c代码
时间: 2024-09-08 11:00:55 浏览: 46
在C语言中,如果你想要从用户那里获取多行且每行数目不固定的整数输入,你可以使用`scanf`函数和循环结构来实现。下面是一个简单的例子,演示了如何读取用户输入的多行整数并将它们存储在数组中:
```c
#include <stdio.h>
int main() {
int n, i;
int count = 0;
printf("请输入每行的整数数量(以非数字字符结束输入):\n");
while(scanf("%d", &n) == 1) {
int arr[n]; // 动态创建数组来存储每行的整数
printf("请输入 %d 个整数(每输入一个整数后按空格或回车):\n", n);
for(i = 0; i < n; ++i) {
scanf("%d", &arr[i]); // 读取整数
}
// 处理每行输入的整数
printf("处理完毕第 %d 行的数据。\n", ++count);
// 在这里可以添加对数组 arr 的处理逻辑
}
return 0;
}
```
在这段代码中,我们首先询问用户每行要输入的整数数量,然后使用 `scanf` 函数读取整数,并将它们存储在动态创建的数组 `arr` 中。每次用户输入完毕一行后,程序会提示处理完毕该行数据,并可以继续接收下一行的数据。当用户输入非数字字符时,`scanf` 的返回值将不再是1,此时循环结束。
请注意,这种方法使用了变长数组(VLA),这是在C99标准中引入的特性。一些编译器可能不支持VLA,或者在默认情况下禁用了该特性。在这种情况下,你可能需要使用动态内存分配(如 `malloc` 或 `calloc`)来代替。
阅读全文