hyqd.net
当前位置:首页 >> C语言递归方法实现逆序 >>

C语言递归方法实现逆序

#include void shiftnumber(int x) { //int temp,i; if(x/10==0) printf("%3d",x); else { printf("%3d",x%10); x/=10; shiftnumber( x); } } int main() { int x; printf("input a integer number :"); scanf("%d",&x); if(x>0) shiftnumber(x); return 0; }

#include "stdio.h" int invert(long m) { printf("%ld", m%10); m = m/10; if (m>0) invert(m) ; } main() { long n; printf("Enter n: "); scanf("%ld", &n); invert(n); printf("\n"); }

可以参考下面的代码:#include <stdio.h>#include <stdlib.h> void print_order_number(unsigned number) { printf("%d",number%10);fflush(NULL); if ( number >= 10 ) { print_order_number(number/10); } } int main(int argc, char**argv) { if ( argc != 2

#include <stdio.h> void shiftnumber(int x) { //int temp,i; if(x/10==0) printf("%3d",x); else { printf("%3d",x%10); x/=10; shiftnumber( x); } } int main() { int x; printf("input a integer number :"); scanf("%d",&x); if(x>0) shiftnumber(x); return 0; }

#include <stdio.h> void reverse(char *s) { if (*s) { reverse(s+1); putchar(*s); } } void main() { char a[256]; gets(a); reverse(a); printf("\n"); }

楼主你好 具体代码如下:#include<stdio.h> void Reverse(int n)//递归逆序输出n { if(!n) return; printf("%d",n%10); Reverse(n/10); } int main(void) { int n; printf("Enter n:"); scanf("%d",&n); Reverse(n); printf("\n"); return 0; } 希望能帮助你哈

void NegativeStr(char * s,char * d,int i=0) { int static j=0; if(s[i]!='\0') { NegativeStr(s,d,i+1); d[j++]=s[i]; } else d[i]='\0'; } int main() { char str_s[]={'1','2','3','4','\0'}; char str_d[90]; NegativeStr(str_s,str_d); printf("%s\n",str_d); return 0; }

函数用的是系统栈,栈的特点是先进后出 假设 str = "abcde"; 递归函数当未达到末尾的'\0'时,就调用下一个字符的打印函数(这些就逐一保存在栈中,最先遍历到的在最底下,先遍历的总是在后遍历的下边) 到了str[i] == '\0' 的时候,不符合递归条件,就出栈,其实栈内保存的是print()函数和每个字符的地址,你可以想象一下,出栈的时候,从上到下,应该是"e d c b a"是吧,这样依次打印,顺序就自然而然逆序了

#include void main() { void proc(int n); int n; scanf("Input n:%d",n); proc(n); void proc(int n) //递归函数 { if(n\10==0) //n剩一位数字 { printf("%d",n); return(); } printf("%d",n%10); //打印最后一位数字 proc(n\10); //递归,去掉n的最后一位然后调用自己 } }

#include void f() { char ch; if((ch = getchar())!='\n') f(); if(ch!='\n') printf("%c", ch); //这个输出语句是写在了递归调用之后,会被压栈,先压栈的后输出,所以可以实现逆序输出,如果把这个语句移动到f();就不会压栈了 } void main() { f(); printf("\n");

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