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

作者&投稿:胡桦 (若有异议请与网页底部的电邮联系)
C语言编写程序 :输入一个正整数,将其逆序输出。例如,输入12345,输出54321. 跪求大神用循环语句~

#include
int main()
{
int num;
scanf("%d",&num);
int a,i;
for(i = 0;num > 0;i++)
{
a = num % 10;
printf("%d",a);
num = num/10;
}
return 0;
}

分析:首先,输入的是一个整数,因此最前面一位数不是零,所以我们可以用除10取余法写。
a = num % 10
就是输出数字的最后一位
然后除10剔除数字最后一位,这样数字倒数第二位就会输出。以此类推,就能逆序输出数字。
拓展资料
for循环是编程语言中一种开界的循环语句,而循环语句由循环体及循环的终止条件两部分组成,for循环其在各种编程语言中的实现与表达有所出入,但基本为以C语言和pascal语言代表的两种形式。
C语言中的for循环如下
1.语句最简形式为:
for( ; ; )
2.一般形式为:
for(单次表达式;条件表达式;末尾循环体)
{
中间循环体;
}

#include "stdio.h"void intrev(int n){if(n){printf("%d",n%10);intrev(n/10);}}int main(int argc,char *argv[]){int x;printf("Please enter a positive integer...
");if(scanf("%d",&x)!=1 || x<1){printf("Input error, exit...
");return 0;}intrev(x);printf("
");return 0;}运行样例:

#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");
}

就这个

#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就是按照递归实现一个字符串的逆序输出

#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;
}

#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;
}


用递归法将一个整数n 转换成字符串,函数原型如下:int string(int n...
include<stdio.h> void fun(long n){ long m;if(n!=0){ printf("%c",n%10+48);m=n\/10;fun(m);} } main(){ long n;scanf("%ld",&n);fun(n);}

用递归法将一个整数n转换成字符串。列如,输入483应输出字符串“483...
static int i; if(n>10) toStr( n\/10, s); else i=0; s[i++] = n%10 + '0'; s[i]='\\0'; return s;}int main(){ long n; char s[20]; while(scanf("%ld",&n)==1) printf("%s\\n",toStr(n,s));} ...

如何用递归的方法将字符串进行反转
伪代码:字符串 反转(字符串 s) { if (s的长度大于1) { return s的最后一个字符 + 反转(s去掉最后一个字符后剩下的部分); } else { return s; }}

\/\/用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串"483...
1)递归中间步骤:若当前整数参数a 不为个位。。则将a\/10代入char* function(int a) ; 并等待调用的函数被跳出后 将当前整数参数a的最低位存入字符串。2)递归最底层情况:最若该整数为个位 则直接转换为ascii码;并存入字符窜。。递归结束 include char mychar[100];\/\/定义一个无限大的字符...

C语言用递归法将一个整数n转换成字符串的程序中 putchar(n%10+'0...
作用就是输出整数n的个位数对应的字符。n%10对10取余数,得到个位。个位+ '0'就是得到对应的数字字符比如1 + '0' = '1'查看下ASCII码表就知道了。

用递归反显示字符串“This is C progrom.”
void main(){ int length;char string[81];strcpy(string,"This is C program.");length=strlen(string);\/\/求长度。reversedisplay(string,length,0);getch();\/\/暂停屏幕。} void reversedisplay(char s[],int length,int index){ if( index< (length-1) )\/\/判断是否达到最后一个字符...

c程序设计:用递归法将一个整数n转换成字符串。例如,输入486,应输出字符...
void f(int a,char *m){static int p=0;if(a){*(p+m)=a%10+48;p++;f(a\/10,m);} else *(p+m)=0;} main(){ int a,p;scanf("%d",&a);char m[100];f(a,m);for(int i=strlen(m)-1;i>=0;i--)putchar(m[i]);} ...

...atoi((char *string)把一个十进制表示的字符串转换成一个整数,返...
include <stdio.h> include <string.h> include <math.h> int atoi(char * str){ char *s;int len;s = str;len=strlen(s);if(*s=='\\0') return 0;else return (str[0]-'0')*pow(10,len-1)+atoi(s+1);} int main(){ char s[20];printf("请输入一个字符串: ");gets(...

看不懂代码:用递归法将一个整数n转化成字符串。
#include<stdio.h> void convert(intn){ int i;if ((i=n/10)!=0)convert(i);putchar(n%10+'0');} int main(){ int num;scanf("%d",&num);if(num<0){ printf("-");num=-num;} convert(num);printf("\n");return0;} ...

用递归法将一个六位整数n转换称字符串,谁能讲讲为什么会有itoa(n...
被注释掉的才是正确的。i%10+'0'是将整型数字转化为字符型(若'1'+i%10‘就使转换后的字符比原数字大1)至于itoa(n,str+5); 是因为数组下标是从0开始的,所以*(str+5)就是str[5];

金川区19726426362: 如何用递归实现字符串倒序 -
冷纯华富: 程序如下,已通过调试,输入abcdefg,结果为gfedcba,附说明如下: #include<stdio.h> int main() { char nixu(char *s,char *p); char s[20],*p; int i; scanf("%s",s);//输入一个长度小于20的字符串,由s[20]限定,要改字符串长度就改字符串数组...

金川区19726426362: 用递归的方法将字符串逆序输出,谁能解释下下面的代码 -
冷纯华富: #include <iostream> using namespace std; void fun(char *str) //fun函数 { if (*str=='\0') //如果指针内的值为null,也就是到了最后就返回. { return; //返回 } fun(str+1); //否则递归调用fun函数,参数为(每递归调用一次指针向前加一) cout<<*str; ...

金川区19726426362: C语言递归函数,实现字符串逆序输出,代码如下,想不通运行过程和原理,求解释 -
冷纯华富: #includevoidf(){charch;if((ch=getchar())!='\n')f();if(ch!='\n')printf("%c",ch);//这个输出语句是写在了递归调用之后,会被压栈,先压栈的后输出,所以可以实现逆序输出,如果把这个语句移动到f();就不会压栈了}voidmain(){f();pri

金川区19726426362: 按照递归实现一个字符串的逆序输出. 如输入一个字符串12345,输出为54321 c语言程序,包括程序的步骤和解释 -
冷纯华富: #include<stdio.h> void reverse(int p[],int size) {if(size>0) {printf("%d\t",p[size-1]); reverse(p,--size); } } void main() { int size=5; int array_num[5]={1,2,3,4,5}; reverse(array_num,size); }

金川区19726426362: 如何用递归的方法将一个字符串逆序的结果打印出来 -
冷纯华富: 下面的C代码可以完成“用递归的方法将一个字符串逆序的结果打印出来”,已经过调试,希望对你有用.#include <stdio.h> void rev_str(char *p); void main() { rev_str("I am a boy."); } void rev_str(char *p) { if ((p == (char *)NULL) || (*p == '\0')) { return; } else { rev_str(p + 1); printf("%c", *p); } }

金川区19726426362: c++ 递归函数实现使输入的字符串按逆序输出.请问该函数是如何实现递归的,求详细解释 -
冷纯华富: 函数用的是系统栈,栈的特点是先进后出假设 str = "abcde";递归函数当未达到末尾的'\0'时,就调用下一个字符的打印函数(这些就逐一保存在栈中,最先遍历到的在最底下,先遍历的总是在后遍历的下边)到了str[i] == '\0' 的时候,不符合递归条件,就出栈,其实栈内保存的是print()函数和每个字符的地址,你可以想象一下,出栈的时候,从上到下,应该是"e d c b a"是吧,这样依次打印,顺序就自然而然逆序了

金川区19726426362: c++编写一个递归函数,将一个字符串按其逆序输出.要求不要用指针和数组.在线等~~~~~急 -
冷纯华富: //定义递归函数 要求不用指针和数组输出字符串 void ReverseOrder(char* string) { char ch; ch=string[0]; if(string[0]!=NULL) { ReverseOrder(&string[1]); cout<<ch;//逆序输出字符串 } }

金川区19726426362: 设计一个递归函数将给定的串逆序输出 -
冷纯华富: 参数说明:1. s 原始字符串2. n 原始字符串长度 处理说明:该函数执行完毕,原始字符串已经是逆序了 void invert(char s[], int n) { char temp; if(n>1) { invert(s+1, n-2); temp = s[0]; s[0] = s[n-1]; s[n-1] = temp; } }

金川区19726426362: 编写一个递归函数,将一个字符串按其逆序输出,比如“abcdef"则输出”fedcba" -
冷纯华富: #include<stdio.h>#include<string.h> void fun(char str[]) { for(int i=strlen(str)-1;i>=0;i--) printf("%c",str[i]); printf("\n"); } void main() { char str[100]; printf("input the string:\n"); scanf("%s",&str); fun(str); }

金川区19726426362: c++ 如何用递归来实现字符串逆序 -
冷纯华富: #include#include void strchange(char a[],int i) { printf ("%c",a[i]); if (i>=1) { strchange(a,i-1); } } int main() { char a[100]; int i; gets(a); i=strlen(a); strchange(a,i-1);//这里改为这样,注意是i-1 return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网