按照递归实现一个字符串的逆序输出。 如输入一个字符串12345,输出为54321 c语言程序,谢啦

如题所述

第1个回答  2011-04-07
#include<stdio.h>
#include<string.h>

void reverse(char *s,int length){
if(length==1){
printf("%c",s[0]);

}else{
reverse(&s[1],length-1);
reverse(&s[0],1);
}
}
void main(){
char input[]="1720470234";
puts(input);
int l=strlen(input);
reverse(input,l);
printf("\n");
}

就这个本回答被提问者采纳
第2个回答  2011-04-07
#include<stdio.h>
void y(char *s)
{if(*s!='\0') y(s+1);
printf("%c ",*s);
}
void main()
{
char s[100]="12345";
y(s);
}
函数y就是按照递归实现一个字符串的逆序输出

参考资料:自己写的,简明易懂

第3个回答  2011-04-07
#include <stdio.h>
#include <string.h>
void reverse(char str[])
{
static int len = strlen(str) - 1;
if (len != -1)
{
printf("%c", str[len]);
--len;
reverse(str);
}
}
int main()
{
char str[] = "12345";
reverse(str);
return 0;
}
第4个回答  2011-04-07
#include "stdio.h"
#include "string.h"
#include <iostream>
using namespace std;

void reverseNum(char* str){
if(0== str || 0 == strlen(str))
{
cout<<endl;
return;
}
int cnt = strlen(str);
char c = str[cnt-1];
str[cnt-1] = 0;
cout<<c;
reverseNum(str);
}
int main(int argc, char* argv[])
{
while(1){
char str[16];
scanf("%16s",str);
reverseNum(str);
}
return 0;
}

...如输入一个字符串12345,输出为54321 c语言程序,谢啦
include<stdio.h> include<string.h> void reverse(char *s,int length){ if(length==1){ printf("%c",s[0]);}else{ reverse(&s[1],length-1);reverse(&s[0],1);} } void main(){ char input[]="1720470234";puts(input);int l=strlen(input);reverse(input,l);printf("\\n"...

...将其逆序输出。例如,输入12345,输出54321. 跪求大神用循环语句_百 ...
分析:首先,输入的是一个整数,因此最前面一位数不是零,所以我们可以用除10取余法写。a = num % 10 就是输出数字的最后一位 然后除10剔除数字最后一位,这样数字倒数第二位就会输出。以此类推,就能逆序输出数字。

...32768的整数按逆序输出。如输入12345,则输出54321。
scanf的输出格式规定,输出的变量前要加&,所以第一个空的答案是:&n。由于是逆序输出,所以当“12345”传到r函数时,先输出个位,通过12345%10得到个位,所以第二处的答案是:m%10。由于已经把个位输出,所以要把变量的个位进行去掉,通过除以10去掉个位,故第三空的答案是:m\/10。删除变量最后一位...

C语言递归;输出结果12345 54321,问:54321怎么解释,求解?
这个就是函数的递归了。在函数内调用本身。思路如下;首先是a=1进入f(a),然后在f(a)中迭代自己,不过参数传入(a+1)也就是2,一直往下迭代,直至a=6,迭代进行不下去,执行上一层迭代没有执行完的代码,也就是输出a=5,4,3,2,1的代码,最终的结果也就如您所示的样子。要是还不明白,就直接...

...32768的整数按逆序输出。如输入12345,则输出54321。
要实现将输入小于32768的整数按逆序输出,可以使用递归的方法。递归函数的基本结构如下:①读取输入整数n;②计算个位m%10;③删除个位并递归调用自身,即m\/10;④判断是否还有剩余位,若m!=0则继续;⑤当m为0时,返回结果r(m)。输入如12345时,首先通过m=scanf(%d,n)获取整数,这里答案是n。接着...

...逆序输出每一位上的数 如输入54321 输出12345 要代码
\/(int) 结果为int 2: 待执行ser函数后,输出结果个位数 12345 % 10 = 5 3: 第二次执行ser函数...类比步骤1 4: 待递归执行ser函数,类比步骤2,输出十位个数 1234 % 10 = 4 5: 类比步骤1 6: 类比步骤2,输出百位个数 123 % 10 = 3 7: 类比步骤1 8: 类比步骤2,输出千位 12 %...

编写程序,从键盘输入一个三位数,求出其逆序数并输出,例如输入123,输出32...
package com.yuxin.learn;public class Main{ \/\/输入整数后,逆序输出为字符串,通过递归实现 public static String reverse(int a){ if(a<0)return"";if(a<10)return Integer.toString(a);int last=a-(a\/10)*10;\/\/取得这个整数的最后一位 return Integer.toString(last)+reverse(a\/10);\/\/...

c语言中如何实现输入一个整数实现倒序输出
1、新建一个工程和.c文件,输入头文件和主函数 2、声明被调用的函数,定义变量类型 3、输入整数 4、用一个if语句去判断整数是否为负数,若为负数则用putchar函数输出一个负号 5、调用一个函数 6、定义函数的返回类型和形参类型 7、通过if语句判断该数是否仅剩一位数,若不是则执行else语句 8、通过...

C语言,用递归法并通过函数调用方法将一个整数换成字符串,如整数123...
include<stdio.h> int n=-1 void copy(int i,char x[]){ if(i<10)x[i]=i+48;else { n++;copy(i\/10,x);n--;} }

c加加程序。用递归法将一个整数n转换成字符串。例如,输入572,输出...
malloc(length*(sizeof(char)));while(number){ t = number % 10;number_string[index] = t + '0' - 0;index++;number \/= 10;} return number_string;} int main(){ int number = 12345;char *number_string = int2string(number);printf("%s\\n", number_string);return 0;} ...

相似回答