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

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

#include void rev_print(char * x) { if(*x) rev_print(x +1); else return; putchar(*x); } int main(void) { char line[80]; printf("请输入一个字符串:"); gets(line); rev_print(line); return 0; }

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

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

这程序虽然使用了指针,但却不是递归的。 初步修改的结果(仍未使用递归): #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; }

#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

public class Lab9{private static String recursion ( String input ){if (input.isEmpty ()){return input;}return recursion (input.substring (1)) + input.charAt (0);}public static void main ( String[] args ){System.out.println (rec...

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

反序字符串,只需要将首尾字符依次调换即可。 #include #include // 反序字符串x并返回char* reverse(char *x){ int len = strlen(x); int i, n = len / 2; char tem; for (i = 0; i

#include #include using namespace std; void AA(int n,char s[]){ //把整型n转换为字符串保存至s,注意此为反着保存的 即100保存进去为001; int i=0; while(n>0){ s[i++]=(char)(n%10)+'0'; n/=10; } s[i]='\0'; } void BB(int n,char s[]){ ...

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