首页 > C语言笔记

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() 输入数组时,还有一些注意事项:

相关文章