3.
#include<stdio.h>
voidtranvers(intn)
{
if(n/10!=0)
tranvers(n/10);
printf("%c",n%10+'0');
}
intmain()
{
intn;
printf("輸入一個整數:\n");
scanf("%d",&n);
printf("字串是:");
if(n<0)
{
printf("-");
n=-n;
}
tranvers(n);
return0;
}這個看不懂 可不可以給個理解
uj5u.com熱心網友回復:
第一次呼叫遞回函式n=256,n/10==25,遞回第二次呼叫遞回函式n=25,n/10==2,遞回
第三次呼叫遞回函式n=2,n/10==0,不遞回,列印2%10=2,退出函式
第三次呼叫函式退出后,回到第二次呼叫的代碼,接著后面的代碼列印25%10=5,退出函式
第二次呼叫函式退出后,回到第一次呼叫的代碼,接著后面的代碼列印256%10=6,退出函式
整個遞回函式呼叫結束,主程式退出
uj5u.com熱心網友回復:
voidtranvers(intn){tie if(n/10!=0)
tranvers(n/10); // 先呼叫這個函式,就是先處理10位以上的部分, 它會遞回輸出10以上部分的數字
printf("%c",n%10+'0'); // 后執行這個不分,就是后輸出個位上的數字; 和前一個呼叫結合得到256這種從高到底的輸出順序
// 把上面這兩行顛倒一下,得到的就是652的順序了
}
此外,也提問了好幾次了,該給滿意的帖子結賬了吧。 總是提問不結貼就沒人再給你答復啦
uj5u.com熱心網友回復:
怎么結貼 怎么結貼
uj5u.com熱心網友回復:
我剛用 不知道怎么弄
uj5u.com熱心網友回復:
第一次呼叫遞回函式n=256,n/10==25,遞回
第二次呼叫遞回函式n=25,n/10==2,遞回
第三次呼叫遞回函式n=2,n/10==0,不遞回,列印2%10=2,退出函式
第三次呼叫函式退出后,回到第二次呼叫的代碼,接著后面的代碼列印25%10=5,退出函式
第二次呼叫函式退出后,回到第一次呼叫的代碼,接著后面的代碼列印256%10=6,退出函式
整個遞回函式呼叫結束,主程式退出
謝謝謝謝 謝謝謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/132814.html
標籤:C語言
