如何在不使用C语言的数组的情况下读取给定的“ n”输入?

时间:2018-10-19 13:31:23

标签: c arrays

我必须读取给定数量的行,并且重要的是不要使用数组,在读取一行之后,我还需要将每个输入保存在变量中(最多15个输入)。使用数组很容易,但是我不允许在我的代码中使用它!谢谢

1 个答案:

答案 0 :(得分:0)

您可以将它们读入列表。这是这种方法的大致片段。

#include <stdio.h>
typedef struct TNumber
{
    int num;
    struct TNumber * nxt;
}
Number;

int main()
{
    const int MAX = 15;
    Number * numbers = 0;
   //populate numbers list
    Number * nptr = 0;
    int input, n =0 ;
    while (n < MAX && fscanf(stdin, "%d", &input) > 0)
    {
        Number * new = (Number*)malloc(sizeof(Number));
        new->num = input; 
        new->nxt = 0;
        if (numbers == 0)
            numbers = nptr = new;
        else
        {
            nptr->nxt = new;
            nptr = new;
        }
        n++;
    }
    //Output the numbers to check the list
    nptr = numbers;
    while (nptr)
    {
        printf("%d ", nptr->num);
        nptr = nptr->nxt;
    }
}