我想制作一个Print Reverse的代码

I want to make a code of Print Reverse

我想编写一个代码以相反的顺序打印输入。

如果我输入整数

6

20

14

5

我想读取数据而不是仅使用数组方法

喜欢 5 14 20 6,而不是 5 41 02 6。

接下来我该做什么?请帮助我。

#include <stdio.h>

int main(void)
{
    int reverResult;
    int num;
    int i;
    int recurnum=0;
    printf("Test PrintReverse\n");
    printf("Number Please\n");

    scanf("%d",&recurnum);
    printf("%d is the number of recursion\n", recurnum);

    for(i=1 ; i<=recurnum ; i++)
    {
        scanf("%d\n",&num);
        printf("%d\n", num);

    }
}

这里你存储输入数据另一种的某种形式打印它以相反的顺序。如果不是数组,则需要其他形式的 data structure

[假设需要最简单的方法]你在这里想要的是使用 intarray 来保存输入值。

算法是这样的

  1. 读取输入并将其存储在数组中。
  2. 随着每个有效(成功)输入继续递增索引。
  3. 完成后,开始从最高索引到较低索引打印。

您将得到 反向打印。 :-)

备注:

  1. 请记住,数组索引从0开始。
  2. 总是初始化你的局部变量。
  3. 尝试使用显式 return 语句。好习惯。

[P.S。 - 不,我不会在这里写代码。请先自己尝试,如果遇到任何问题,请回来。我们会在这里提供帮助。 :-)]

您可以在没有任何数组的情况下使用递归来执行此操作。递归堆栈将是存储,并将为您提供从堆栈中弹出所带来的逆转。我将用伪代码描绘它:

def recursive_read()
    x = read_value()           // attempt to read a value into x
    if x != EOF_INDICATOR      // read attempt was NOT end-of-file
        recursive_read()       // recursively attempt the next read
        print x                // print the current x when control returns here
    endif
    return      // got EOF, or finished reading/printing. Either way, we're done here!
enddef