這個(gè)倒序的函數(shù),就是如果沒(méi)有讀到回車(chē)符,就繼續(xù)遞歸調(diào)用函數(shù),直到讀到回車(chē)符時(shí)才遞歸返回,這時(shí)才輸出剛才地壓到棧里的前面讀到的字符,所以,輸出是逆序的。
目前創(chuàng)新互聯(lián)已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、泰興網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
reverse(s+1);s[len - 1] = temp; //還原本次遞歸的最后一個(gè)字符 } } int main(){ char s[] = Hello!reverse(s);std:cout s;return 0;} 該注釋的都注釋了,不難理解,自己看吧。。
輸入要處理的整數(shù);取出各位;遞歸調(diào)用,以當(dāng)前值除以10為參數(shù);當(dāng)值為0時(shí)退出。正序和反序輸出,取決于遞歸調(diào)用和輸出的位置關(guān)系。
這是利用遞歸的算法把數(shù)組的里的數(shù)據(jù)逆序輸出而已,并沒(méi)有真正的改變數(shù)組里面數(shù)據(jù)的順序。
即輸入1234,輸出4321,就可以采用類似的方式:void reverse_int_output(int a){ char buf[20];sprintf(buf, %d, a);//將a轉(zhuǎn)為字符串 reverse_output_str(buf);//調(diào)用剛才的函數(shù)反序輸出。
1、}分析:首先,輸入的是一個(gè)整數(shù),因此最前面一位數(shù)不是零,所以我們可以用除10取余法寫(xiě)。a=num%10就是輸出數(shù)字的最后一位然后除10剔除數(shù)字最后一位,這樣數(shù)字倒數(shù)第二位就會(huì)輸出。以此類推,就能逆序輸出數(shù)字。
2、思路:逆序輸出一個(gè)整數(shù)可以對(duì)其除10直到其為0為止,并輸出其對(duì)10取余,最后的結(jié)果就是這個(gè)整數(shù)的逆序。
3、分析:首先,輸入的是一個(gè)整數(shù),因此最前面一位數(shù)不是零,所以我們可以用除10取余法寫(xiě)。a = num % 10 就是輸出數(shù)字的最后一位 然后除10剔除數(shù)字最后一位,這樣數(shù)字倒數(shù)第二位就會(huì)輸出。以此類推,就能逆序輸出數(shù)字。
4、/*求一個(gè)C語(yǔ)言程序:輸入正整數(shù),要求以相反數(shù)順序輸出該數(shù)。
算法:遞歸函數(shù)傳入正整數(shù),先輸出最末尾數(shù)字,再除以10用遞歸函數(shù)繼續(xù)迭代,直到該正整數(shù)為0時(shí)終止遞歸。
data==0){ return;} printf(%d,data%10);printData(data/10);} int main(){ int data;printf(Enter a number:);scanf(%d,&data);printData(data);printf(\n);return 0;} 程序如上,可以運(yùn)行。
實(shí)現(xiàn)指定功能的遞歸函數(shù)如下,調(diào)用時(shí)只要使用reverse(n)就可以得到自然數(shù)n的逆序數(shù)輸出。
問(wèn)題分析:要把整數(shù)逐位輸出,無(wú)論正序還是反序,都需要將各個(gè)位分離。在C中的做法就是,通過(guò)對(duì)10取余,取出個(gè)位,然后通過(guò)除以10,起到“移位”的效果。
分享文章:C語(yǔ)言編程函數(shù)遞歸倒序 c語(yǔ)言中遞歸處理順序
地址分享:http://chinadenli.net/article29/degghch.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站排名、網(wǎng)站導(dǎo)航、軟件開(kāi)發(fā)、定制網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)