本文目錄一覽:
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”);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/242835.html