本文目录一览:
1、c语言 递归 求倒序
2、c语言输入一个整数,用递归算法将整数倒序输出.
3、C语言递归法把字符倒序输出?
4、C语言 递归倒序输出字符串
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>
void order_print(int n)
{
if(n < 10)
{
printf("%d", n);
return;
}
order_print(n / 10);
printf("%5d", n % 10);
}
void reverse_print(int n)
{
if(n < 10)
{
printf("%-5d", n);
return;
}
printf("%-5d", n % 10);
reverse_print(n / 10);
}
int main(void)
{
int n;
printf("Input a integer:");
scanf("%d", &n);
printf("Order print:");
order_print(n);
printf("\n");
printf("Reverse print:");
reverse_print(n);
return 0;
}
运行效果:
return的用法:
return的作用是结束正在运行的函数,并返回函数值。return后面可以跟一个常量,变量,或是表达式。函数的定义一般是这样的,例如:
int a(int i) //第一个int是函数的返回值的类型,也就是return后面跟的值的类型,a是函数的名称,括号里的是传递给函数的参数,int是参数的类型,i是参数的名字
{
... //省略函数体内容
return b; //b必须与函数头的返回值一致(此处为int型)
}
简单函数举例:
int addOne(int b)
{
return b + 1;
}
该函数的作用是取得一个数,将这个数加上1,再将结果返回。 调用时这样:
int result = addOne(2); //此时result的值为3
函数括号里的参数也可以为变量或能算出值的表达式。 以上就是一个基本的函数,一般的函数都有返回值,也就是return后面跟的值,返回值可以为各种数据类型,如:int,float,double,char,a,*a(指针),结构或类(c++)。 但不是所有函数都有返回值,如果某个函数无返回值,那么返回值的位置则为“void”关键字,此时函数体中无返回值,即无return的值。但是函数中也可出现return,即一个空的return句子,其作用是使函数立即结束,如:
void print() //括号中为空表示无传递参数
{
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; i<N; i++)
gets(str[i]);
for(i=0; i<N; i++)
printfmm(str[i], strlen(str[i]));
}
C语言 递归倒序输出字符串
#include<stdio.h>
void f()
{
char ch;
if((ch = getchar()) != '\n')
f();
if(ch != '\n')
printf("%c", ch); //这个输出语句是写在了递归调用之后,会被压栈,先压栈的后输出,所以可以实现逆序输出,如果把这个语句移动到f();就不会压栈了
}
void main()
{
f();
printf("\n");
}