[問題] C副程式傳值問題

看板C_and_CPP (C/C++)作者 (希望就在轉彎處)時間15年前 (2010/11/26 16:36), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/1
麻煩大家了~想了一陣子還是看不出來~ #include<stdio.h> #include<stdlib.h> int ff(int n) { /*我以為一開始會傳n=9進來函式執行 接著印出f=2 然後n遞減往下作 int f=0, f0 =1 , f1=1; 但是執行結果是:55 34 21 13 8 5 3 2 0*/ while (n > 1) { n = n -1; f = f0 + f1; f0 = f1; f1 = f; } return f; } int main() { int n = 9; while (n > 0) { printf("%d",ff(n)); n = n -1; } system("PAUSE"); return 0; } 第一次發問,有不妥麻煩多多包涵與見諒 謝謝大家的幫忙^^~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.107.185.60

11/26 16:42, , 1F
函數裡的迴圈一開始f的確是2 可是你並沒有把它傳出來
11/26 16:42, 1F

11/26 16:43, , 2F
你是等到迴圈做完之後才回傳值 此時f就不會是2了
11/26 16:43, 2F

11/26 16:48, , 3F
或許你可以把printf移到f=f1+f2的下一行
11/26 16:48, 3F

11/26 16:49, , 4F
f0+f1
11/26 16:49, 4F

11/26 16:54, , 5F
非常感謝byby615大大的解說~謝謝您~
11/26 16:54, 5F
文章代碼(AID): #1Cxt6916 (C_and_CPP)
文章代碼(AID): #1Cxt6916 (C_and_CPP)