看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 程式碼(Code): #include <stdio.h> #include <stdlib.h> float rsum(float a[], int n); /*遞迴地求算陣列元素總和*/ int main() { float a[100]; int i, n; printf("Input number: "); /*要求使用者輸入n個numbers */ scanf("%d",&n); for (i=1;i<=n;i++) /*輸入n個numbers */ scanf("%f",&a[i]); printf("Sum=%f \n", rsum(a,n)); /*輸出結果*/ system ("pause"); return 0; } float rsum(float a[], int n) { /*遞迴地求算陣列元素總和*/ if (n) return rsum(a, n-1) + a[n]; return a[0]; /*遞迴地求剩下解*/ } 預期的正確結果(Expected Output): 答案結果是正確的計算陣列總和 但是我要知道函式呼叫後是呼叫Array內以輸入的值? 還是null阿 因為我把printf加在函式一近來if(n)前面 顯示都是null 這是錯的嗎?? 沒有預期說Array內的值 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.229.184
ledia:怎麼印的 ? 另外 return a[0]; 好像怪怪的, a[0] 沒定義過 02/28 18:27
deh3215:i=1開始,哪來的印出a[0]值,輸入超過100,陣列就爆了 02/28 19:12
Yshuan:你的函數跑n+1次 但值卻只有n個 02/28 19:55
HowLeeHi:我加這行跑起來沒問題@@printf(" a[%d] = %f\n",n,a[n]); 02/28 21:39