han125416866 发表于 2021-8-8 22:50:24

栈的妙用

利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
#include<stdio.h>
void fun();
void fun()
{
      
      char a;
      
      if ((a = getchar()) != '\n')
      {
                fun();
                putchar(a);
      }
}

int main()
{
      fun();
      putchar('\n');
      return 0;
}

Max472 发表于 2021-8-9 09:04:30

支持

空格1.1 发表于 2021-8-9 12:08:55

我想知道为啥结果出来是反的程序中没有让他反向的代码吧fun()不应该是再次打引出来吗(萌新)

han125416866 发表于 2021-8-9 16:46:35

空格1.1 发表于 2021-8-9 12:08
我想知道为啥结果出来是反的程序中没有让他反向的代码吧fun()不应该是再次打引出来吗(萌新)

请审题啊,最后说了“以相反的顺序打印出来”,我想说得是“栈”的原理是先进后出,后进先出,每次调用fun()这个函数都是把数据放到栈中,然后再清空栈。例如输入asdfg,结果输出就是gfdsa。(我表达的也许不太专业,大概就是这个意思)

空格1.1 发表于 2021-8-10 09:51:06

han125416866 发表于 2021-8-9 16:46
请审题啊,最后说了“以相反的顺序打印出来”,我想说得是“栈”的原理是先进后出,后进先出,每次调用fu ...

好的谢谢

B站在读研究生 发表于 2021-8-11 15:16:29

这个只能实现字符反序输出吗?
如果是整形数字堆栈能实现吗

han125416866 发表于 2021-8-11 15:39:13

B站在读研究生 发表于 2021-8-11 15:16
这个只能实现字符反序输出吗?
如果是整形数字堆栈能实现吗

数字的话应该也可以,验证出来我会重新编辑的。感谢你的建议。

B站在读研究生 发表于 2021-8-12 17:43:35

han125416866 发表于 2021-8-11 15:39
数字的话应该也可以,验证出来我会重新编辑的。感谢你的建议。

哈哈,鱼油棒棒哒!!!

说与山鬼听os 发表于 2021-8-12 17:56:41

666

hornwong 发表于 2021-8-12 18:21:34

{:5_109:}
页: [1]
查看完整版本: 栈的妙用