Ⅰ 如何用c語言遞歸函數對一個整數逆序
#include
<stdio.h>
void
main()
{
void
proc(int
n);
int
n;
scanf("Input
n:%d",n);
proc(n);
void
proc(int
n)
//遞歸函數
{
if(n\10==0)
//n剩一位數字
{
printf("%d",n);
return();
}
printf("%d",n%10);
//列印最後一位數字
proc(n\10);
//遞歸,去掉n的最後一位然後調用自己
}
}
Ⅱ C語言怎麼把得出來的數字反過來
對於一個整數,反向取出每一位的值比較方便,每次輸出個位,然後將數縮小10倍,再循環輸出新數的個位。
而若要正向輸出整數的每一位,還使用上面的思路就行不通了,採用遞歸方法是最佳的處理方式(這也是遞歸應用的一個經典例子):
#include<stdio.h>
voidreverse(intn)
{
if(n>0)//如果n大於0
{
reverse(n/10);//先輸出高位的結果
printf("%2d",n%10);//再輸出當前的最低位
}
}
intmain()
{
intn;
printf("inputn:");
scanf("%d",&n);
reverse(n);
return0;
}
Ⅲ c語言:將遞歸的方法將一個正整數逆序輸出
可以參考下面的代碼:
#include <stdio.h>
#include <stdlib.h>
void print_order_number(unsigned number)
{
printf("%d",number%10);fflush(NULL);
if ( number >= 10 )
{
print_order_number(number/10);
}
}
int main(int argc, char**argv)
{
if ( argc != 2 )
{
printf("Usage: rev_print <integer> ");
exit(0);
}
unsigned number = atol(argv[1]);
print_order_number(number);
return 0;
}
(3)c語言遞歸整數倒轉擴展閱讀:
printf函數定義
函數聲明
int printf(char *format...);
調用格式
printf("<格式化字元串>", <參量表>);
格式化字元串包含三種對象,分別為:
1、字元串常量;
2、格式控制字元串;
3、轉義字元。
字元串常量原樣輸出,在顯示中起提示作用。輸出表列中給出了各個輸出項,要求格式控制字元串和各輸出項在數量和類型上應該一一對應。其中格式控制字元串是以%開頭的字元串,在%後面跟有各種格式控制符,以說明輸出數據的類型、寬度、精度等。
Ⅳ 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;
}
運行效果:
(4)c語言遞歸整數倒轉擴展閱讀:
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語言中如何實現輸入一個整數實現倒序輸出
定義一個整數類型的輸入,然後讓它正序輸出,倒序輸出相信是很多C語言初學入門一定會遇到的經典題目,下面就是我對整數的正序和倒序輸出一點小小的總結.
1.
反序(倒序)輸出
反序輸出常用的思路就是按位取余,把取出來的值進行循環保存。
int
main()
{
int
i=12345;
//定義一個12345的整數
int
temp=0;//temp作為存儲的值
while(i!=0){
temp
=
temp*10
+
i%10;
i/=10;
}
//反序取出來
printf("%d",temp);
//列印
return
0;
}
如圖所示:
2,
正序輸出
正序輸出會用在整形變數正序輸出轉換成對應的字元數組,或者倒過來.常用思路就是定義一個函數,在函數內遞歸取余調用自身,實現功能。
輸入
:
12345
輸出
:"12345"
如下:
char
str(int
x)
{
char
a[100];//存放整數轉換過來的字元
int
i;
//計數
if(x/10!=0)
str(x/10);
if(x>=0)
a[i]='0'+x%10;
//整數轉換成字元存儲,字元都是以整數形式存儲
else
a[i]='0'+(-x)%10;//整形包括負數
printf("%c",a[i++]);
}
int
main()
{
int
i;
printf("請輸入一個整數:\n");
scanf("%d",&i);
str(i);
return
0;
}
如圖所示:
Ⅵ 編寫遞歸函數將一個整數逆序輸出,求C程序
可以參考下面的代碼:
#include <stdio.h>
void printData(int data)
{
if (data==0)
{
return;
}
printf("%d",data%10);
printData(data/10);
}
int main()
{
int data;
printf("Enter a number:");
scanf("%d",&data);
printData(data);
printf(" ");
return 0;
}
(6)c語言遞歸整數倒轉擴展閱讀:
要使用遞歸就必須要具備兩個條件。
遞歸的思想是:為了解決當前問題 F(n),就需要解決問題 F(n–1),而 F(n–1) 的解決依賴於 F(n–2) 的解決……就這樣逐層分解,分解成很多相似的小事件,當最小的事件解決完之後,就能解決高層次的事件。這種「逐層分解,逐層合並」的方式就構成了遞歸的思想。
使用遞歸最主要的是要找到遞歸的出口和遞歸的方式。所以遞歸通常分為兩部分:遞歸的方式和遞歸的終止條件。
遞歸的方式,就是指遞歸公式,即對問題的分解,同時也是向遞歸終止條件收斂的規則。而遞歸的終止條件通常就是得出的最小事件的解。遞歸終止條件的作用就是不讓遞歸無限地進行下去,最後必須要能「停」下來。
綜上所述,使用遞歸必須要滿足的兩個條件就是:要有遞歸公式、要有終止條件。
Ⅶ c語言:將遞歸的方法將一個正整數逆序輸出
1.
演算法:遞歸函數傳入正整數,先輸出最末尾數字,再除以10用遞歸函數繼續迭代,直到該正整數為0時終止遞歸。
2.
常式:
#include<stdio.h>
void rev(int n){
if(n > 0) { //判斷該數是否大於0
printf("%d", n%10); //輸出末位數值
rev(n/10); //遞歸迭代整除10後的剩餘值
}
}
int main(){
rev(1234); //樣例輸入1234
return 0;
}//樣例輸出 4321
Ⅷ c語言中如何實現輸入一個整數實現倒序輸出
1、新建一個工程和.c文件,輸入頭文件和主函數
Ⅸ C語言:求一個數倒序輸出,用遞歸怎麼做
你要的是輸入一個123,輸出就是321嘛?
void fun(int t)/*t是輸入的數*/
{
if ( t/10 == 0 )
{
printf("%d",t);
return;
}
printf("%d",t % 10);
t /= 10;
fun(t);
}
void main()
{
int t;
int i;
int w;
printf("輸入的數是幾位:\n");
scanf("%d",&w);
printf("輸入%d位的整數:\n",w);
scanf("%d",&t);
fun(t);
}
Ⅹ c語言輸入一個整數,用遞歸演算法將整數倒序輸出.
樓主你好
具體代碼如下:
#include
void
reverse(int
n)//遞歸逆序輸出n
{
if(!n)
return;
printf("%d",n%10);
reverse(n/10);
}
int
main(void)
{
int
n;
printf("enter
n:");
scanf("%d",&n);
reverse(n);
printf("\n");
return
0;
}
希望能幫助你哈