将整个输入保存为整数数组的方法可以通过以下步骤实现:
以下是一个示例代码:
#include <stdio.h>
#include <stdlib.h>
int main() {
int size = 10; // 假设输入的整数个数不超过10个
int* arr = (int*)malloc(size * sizeof(int)); // 创建整数数组
int count = 0; // 记录已读取的整数个数
printf("请输入整数数组(以空格分隔,以回车结束):\n");
int num = 0; // 用于保存当前读取的整数
char c = getchar(); // 读取第一个字符
while (c != '\n' && c != EOF) {
if (c >= '0' && c <= '9') {
num = num * 10 + (c - '0'); // 将字符转换为整数
} else if (c == ' ') {
if (count >= size) {
size *= 2; // 如果数组已满,则扩展数组大小
arr = (int*)realloc(arr, size * sizeof(int));
}
arr[count++] = num; // 将整数添加到数组中
num = 0; // 重置当前读取的整数
}
c = getchar(); // 读取下一个字符
}
if (count >= size) {
size++; // 如果数组已满,则扩展数组大小
arr = (int*)realloc(arr, size * sizeof(int));
}
arr[count++] = num; // 将最后一个整数添加到数组中
printf("输入的整数数组为:");
for (int i = 0; i < count; i++) {
printf("%d ", arr[i]);
}
printf("\n");
free(arr); // 释放数组内存
return 0;
}
这段代码通过getchar()函数逐个读取输入的字符,并判断字符是否为数字。如果是数字,则将其转换为整数并添加到数组中。当读取到空格时,将当前整数添加到数组中,并重置当前读取的整数。当读取到换行符或结束符时,结束读取过程,并输出整数数组。
这个方法适用于将以空格分隔的整数输入保存为整数数组的场景,例如输入"1 2 3 4 5",将保存为整数数组[1, 2, 3, 4, 5]。
领取专属 10元无门槛券
手把手带您无忧上云