亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于遞歸函數,菜鳥不懂,求大神詳細講解

關于遞歸函數,菜鳥不懂,求大神詳細講解

C
Alone_shin 2015-08-02 16:57:18
#include <stdio.h>/* 定義獲取單詞數量的函數 */int getWordNumber(int n){ ??? ? if(n == 1)? ? {? ? ? ? return 1; ? ?//第一天只會1個單詞? ? }? ? else{? ? ? ? return getWordNumber (n-1)+n ; ? ? ? //到第天會的單詞數量? ? }}int main(){? ? int num = getWordNumber(10); ? ? //獲取會了的單詞數量? ? printf("小明第10天記了:%d個單詞。\n", num);? ? return 0;}
查看完整描述

4 回答

?
Alone_shin

TA貢獻5條經驗 獲得超0個贊

我本來想弄個可以無限輸入積分的程序(就是可以只運行一次程序就能從鍵盤輸入輸入無限次數據),可是想不出別的循環方法,比如下面的代碼:

#include <stdio.h>

float zf(int time,int jl)//time為下班時間,jl為13公里

{

? ? float money;

? ? if(time>5 && time<=23)

? ? {

? ? ? ? money=(jl-3)*2.3+14;

? ? ? ? return money;

? ? }else

? ? {

? ? ? ? money=(jl-3)*2.3+(jl-3)*0.46+14;

? ? ? ? return money;


? ? }

}

int main()

{

? ? int jl=13;

? ? int time;

? ? printf("請輸入你的下班時間:");

? ? LOOP:scanf("%d",&time);

? ? if(1<=time && time<=24)

? ? {

? ? ? ? printf("你的費用為%.1f元\n",zf(time,jl));

? ? }else

? ? {

? ? ? ? printf("你輸入的數據有誤請在輸一次");

? ? ? ? goto LOOP;

? ? }


? ? return 0;

}


查看完整回答
反對 回復 2015-08-05
  • sca11
    sca11
    循環語句有 1.while 2.do while 3.for三種 goto 只是實現跳到定義的標識符處,注意看你goto loop的位置,是在else的{}括號內,只有當if判斷條件不成立的時候,才實行else 并goto loop 在你這里只是goto語句只是輸入錯誤的時候才跳回去,關于goto語句 很多人都認為這事代碼混亂的源泉,盡量不用 如果想要實現循環,可以如下代碼替換 while(scanf("%d",&time)>0) { if(1<=time && time<=24) { printf("你的費用為%.1f元\n",zf(time,jl)); printf("請輸入你的下班時間:"); } else { printf("你輸入的數據有誤請在輸一次\n"); printf("請輸入你的下班時間:"); } }
?
Alone_shin

TA貢獻5條經驗 獲得超0個贊

好的,謝謝

查看完整回答
反對 回復 2015-08-04
?
sca11

TA貢獻2條經驗 獲得超0個贊

遞歸代碼詳解

查看完整回答
反對 回復 2015-08-04
?
sca11

TA貢獻2條經驗 獲得超0個贊

這問題我今天答過兩次了,就在這論壇里,自己去搜下吧?,其中有一問題是? 遞歸詳解

查看完整回答
反對 回復 2015-08-04
  • 4 回答
  • 0 關注
  • 1476 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號