繁体   English   中英

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

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

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

多少号? 3个

输入数字: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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM