本文目录一览:
c语言 递归 求倒序
#includeconio.h
#includestdio.h
void
reverse()
//递归函数
{
char
a;
//每个函数有个保存一个字符的变量
a=getchar();
if(a=='\n')
return;
//如果遇到回车结束,即最后的退出条件
else
reverse();
否则进入递归调用
putchar(a);
每个递归出来时输出它接收的一个字符
return;
}
main()
{
printf("\n");
reverse();
getch();
}
完全按你的要求来的
c语言输入一个整数,用递归算法将整数倒序输出.
#include<stdio.h>
voidorder_print(intn)
{
if(n<10)
{
printf("%d",n);
return;
}
order_print(n/10);
printf("%5d",n%10);
}
void reverse_print(intn)
{
if(n<10)
{
printf("%-5d",n);
return;
}
printf("%-5d",n%10);
reverse_print(n/10);
}
int main(void)
{
int n;
printf("Inputainteger:");
scanf("%d",&n);
printf("Orderprint:");
order_print(n);
printf("\n");
printf("Reverseprint:");
reverse_print(n);
return0;
}
运行效果:
扩展资料:
return的用法:
return的作用是结束正在运行的函数,并返回函数值。return后面可以跟一个常量,变量,或是表达式。函数的定义一般是这样的,例如:
inta(inti)//第一个int是函数的返回值的类型,也就是return后面跟的值的类型,a是函数的名称,括号里的是传递给函数的参数,int是参数的类型,i是参数的名字
{
...//省略函数体内容
returnb;//b必须与函数头的返回值一致(此处为int型)
}
简单函数举例:
intaddOne(intb)
{
returnb+1;
}
该函数的作用是取得一个数,将这个数加上1,再将结果返回
调用时这样:
intresult=addOne(2);//此时result的值为3
函数括号里的参数也可以为变量或能算出值的表达式
以上就是一个基本的函数,一般的函数都有返回值,也就是return后面跟的值,返回值可以为各种数据类型,如:int,float,double,char,a[](数组),*a(指针),结构或类(c++)
但不是所有函数都有返回值,如果某个函数无返回值,那么返回值的位置则为“void”关键字,此时函数体中无返回值,即无return的值。但是函数中也可出现return,即一个空的return句子,其作用是使函数立即结束,如voidprint()//括号中为空表示无传递参数、
{
printf("a");
printf("b");
return;//函数执行到此处结束
printf("c");
}//该函数只执行到return语句处,即屏幕上输出的为"ab"
C语言递归法把字符倒序输出?
#include stdio.h
#include string.h
#define N 1//这里的1可以改,改成10同时可以玩10个串串
void printfmm(char *s,int len){
if(len==0){printf("%c\n",s[len-1]);return;}
else {printf("%c",s[len-1]);printfmm(s,len-1);}
}
void main() {
char str[N][30],t;
int i,s[52]={0},j;
printf("上串串:");
for(i=0;iN;i++)
gets(str[i]);
for(i=0;iN;i++)
printfmm(str[i],strlen(str[i]));
}
C语言 递归倒序输出字符串
#includestdio.h
void f()
{
char ch;
if((ch = getchar())!='\n')
f();
if(ch!='\n') printf("%c", ch); //这个输出语句是写在了递归调用之后,会被压栈,先压栈的后输出,所以可以实现逆序输出,如果把这个语句移动到f();就不会压栈了
}
void main()
{
f();
printf("\n");