C语言怎么用scanf()输入数组?
在C语言中,使用 scanf() 函数输入数组是一种常见的操作,它允许我们从用户那里获取多个值,并将它们存储在数组中。
以下是使用 scanf() 输入整型数组的基本语法:
int arr[5]; scanf("%d %d %d %d %d", &arr[0], &arr[1], &arr[2], &arr[3], &arr[4]);
这种方法要求用户输入 5 个整数,每个整数用空格分隔。输入的值会被依次存储到数组 arr 的各个元素中。
但是,如果数组较大,这种方法就会变得非常繁琐,我们可以使用循环来简化这个过程:
#include <stdio.h> #define SIZE 5 int main() { int arr[SIZE]; int i; printf("请输入 %d 个整数,用空格分隔:\n", SIZE); for (i = 0; i < SIZE; i++) { scanf("%d", &arr[i]); } printf("你输入的数组是:\n"); for (i = 0; i < SIZE; i++) { printf("%d ", arr[i]); } return 0; }
这段代码创建了一个大小为 5 的整型数组,然后使用 for 循环和 scanf() 函数来填充数组,最后它会打印出数组的内容以验证输入是否正确。
运行这段代码,输出可能如下:
请输入 5 个整数,用空格分隔: 1 2 3 4 5 你输入的数组是: 1 2 3 4 5
对于字符数组(字符串),我们可以使用 %s 格式说明符,它允许我们一次性读取整个字符串:
#include <stdio.h> #define MAX_LENGTH 100 int main() { char str[MAX_LENGTH]; printf("请输入一个字符串:\n"); scanf("%s", str); // 注意:这里不需要 & printf("你输入的字符串是:%s\n", str); return 0; }
需要注意的是,使用 scanf() 读取字符串时,它会在遇到空格或换行符时停止读取,如果你需要读取包含空格的字符串,可以使用 fgets() 函数代替。
使用 scanf() 输入数组时,还有一些注意事项:
- 始终检查 scanf() 的返回值,以确保输入成功。
- 使用 scanf() 时要小心缓冲区溢出。始终为数组分配足够的空间。
- 如果输入的数据类型与预期不符,可能会导致未定义行为。