gmth.net
当前位置:首页 >> 用递归调用反向输出一个字符串 >>

用递归调用反向输出一个字符串

因为一直到k=0才能执行printf语句 其他时候都在递归调用 就是压入栈 先进后出 那么压入顺序是543210 弹出顺序自然就是反的

是否反向输出要看printf是在调用函数前面还是后面,如果在前面就是正向输出了,否则当前的输出值要在调用下一级函数之后才能输出。

输出你输入的字符......

void Print(char *str) { char *p; p = str; if (*p) { Print(++ p); printf("%c", *str); } }

#include using namespace std ; #define N 5 void f(int a[],int n); int main ( ) {int a[N],n; cin>>n; for(int i=1;i>a[i]; f(a,n) ; return 0;} void f(int a[N],int n) { cout

这程序虽然使用了指针,但却不是递归的。 初步修改的结果(仍未使用递归): #include main() { char s[1000]={0}; char *q; int i=0,l; q=s; scanf("%c",(q+i)); while(*(q+i)!='#') { i++; scanf("%c",(q+i)); } l=i-1; for(i=l;i>=0;i--) { p...

测试通过!#include void fun(char *p){ if(*(p+1)) fun(p+1); printf("%c",*p); }int main() {fun("abcdef"); //测试! return 0; }

package test; public class ReverseString { public static void main(String[] args) { reverseString("abcde"); } public static void reverseString(String str) { if(str.length() == 1) { System.out.print(str); } else { String str1 = ...

函数用的是系统栈,栈的特点是先进后出 假设 str = "abcde"; 递归函数当未达到末尾的'\0'时,就调用下一个字符的打印函数(这些就逐一保存在栈中,最先遍历到的在最底下,先遍历的总是在后遍历的下边) 到了str[i] == '\0' 的时候,不符合递归条...

网站首页 | 网站地图
All rights reserved Powered by www.gmth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com