如何将一行中未知数量的数字作为输入并将每个数字分配给一个变量?

How do I take an unknown amount of numbers in a single line as input and assign each number to a variable?

我现在正在练习链表,我希望输入以下格式:

How many numbers? 3

Enter numbers : 40 7 28

因为一开始我不知道可以有多少个数字,所以我不能使用类似

的东西

scanf("%d %d %d", &var1, &var2, &var3);

那么我怎样才能读取单行中的那些数字并可能将它们中的每一个分配给一个数组?

为此不需要使用链表,因此一个简单的解决方案是使用动态分配的数组来存储元素。使用以下代码:

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    int n;

    printf("How many number? ");
    scanf("%d", &n);

    int *arr = malloc(sizeof *arr * n);

    printf("Enter numbers: ");
    for (int i = 0; i < n; i++)
        scanf("%d", &arr[i]);

    printf("The numbers you entered are: ");
    for (int i = 0; i < n; i++)
        printf(i == (n - 1) ? "%d" : "%d ", arr[i]);

    printf("\n");

    return 0;
}