[問題] 遞迴問題part2...

看板C_and_CPP作者 (a26573633)時間13年前 (2012/10/05 15:48), 編輯推噓3(309)
留言12則, 6人參與, 最新討論串1/2 (看更多)
程式目的:要用遞迴寫出一程式,可以計算像是 +1+*45*23這種算式,其代表1+(4*5+2*3) 在經過各位熱心板友還有版主的指導後, 我寫出以下程式碼 ------------------------------------------- #include<stdio.h> int F(char str[]); /* 函數宣告*/ int x = 0; int main(void) { char str [100]; int ans; scanf("s%", str); ans = F(str); printf("%d",ans); return 0; } int F( char str[]) /* 函數定義*/ { if(str[x] == 1) return 1; if(str[x] == 2) return 2; if(str[x] == 3) return 3; if(str[x] == 4) return 4; if(str[x] == 5) return 5; if(str[x] == 6) return 6; if(str[x] == 7) return 7; if(str[x] == 8) return 8; if(str[x] == 9) return 9; else{ if (str[x] == "+") return F(str[x+1])+F(str[x+2]); if (str[x] == "*") return F(str[x+1])*F(str[x+2]); } } ------------------------------------------------------------ 進去codeblock跑,有跑出程式,但我試著運算,答案是錯的..... 不知道是哪裡出了問題,我自認矩陣當引數的概念很薄弱,指標 方面也還在努力中(但這題好像不會使用到),不知道是否在這些 方面出了問題 非常感謝大家!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.218.237

10/05 15:54, , 1F
為什麼要用一堆if,直接用ascii碼-48就好
10/05 15:54, 1F

10/05 15:57, , 2F
寫程式沒多久@@ 目前很弱 還有其他問題嗎?
10/05 15:57, 2F

10/05 15:58, , 3F
bug要de了半天,程式出來還是怪怪的orz
10/05 15:58, 3F

10/05 16:05, , 4F
會用debugger嗎?趁現在學一學吧
10/05 16:05, 4F

10/05 16:07, , 5F
還有compiler應該有給你warning...關心一下它唄
10/05 16:07, 5F

10/05 16:09, , 6F
你知道為什麼男人不能劈腿嗎?每一個F()的x都不一樣
10/05 16:09, 6F

10/05 16:10, , 7F
你竟然用同一個,學學宋七力吧,多用幾個分身 :)
10/05 16:10, 7F

10/05 16:14, , 8F

10/05 16:15, , 9F
第二個運算元不一定永遠在x+2的位置上
10/05 16:15, 9F

10/05 16:15, , 10F
說錯, 第二個運算"子"
10/05 16:15, 10F

10/05 16:16, , 11F
你可能還是沒搞清楚:遞迴是「很多」層,不是同一層
10/05 16:16, 11F

10/05 17:26, , 12F
error ...
10/05 17:26, 12F
文章代碼(AID): #1GRf2x4f (C_and_CPP)
文章代碼(AID): #1GRf2x4f (C_and_CPP)