引用 | 編輯
GNUGCC
2007-05-05 21:22 |
1樓
▲ ▼ |
1.
int Pow(int x) { if ( x == 1 ) return 1; return x + Pow(x - 1); } x1 |
引用 | 編輯
karen7710
2007-05-06 09:02 |
2樓
▲ ▼ |
第一題我好像打的怪怪的~
麻煩大大告訴該怎麼改? 因為題目規定要用遞迴函式! 複製程式 #include <stdio.h> #include <stdlib.h> int answer(int); int main(void) { int i,sum=0; for(i=1;i<101;i++) { sum=sum+i; } printf("sum=%d",answer); system("pause"); return 0; } int answer(int x) { if ( x == 1 ) return 1; return x + answer(x - 1); } x1 |
引用 | 編輯
海洋天使
2007-05-06 21:22 |
3樓
▲ ▼ |
#include <stdio.h>
#include <stdlib.h> int answer(int); int main(void) { printf("sum=%d\n",answer(100)); system("pause"); return 0; } int answer(int x) { if ( x == 1 ) return 1; return x + answer(x - 1); } 這樣才是正確呼叫遞迴的方法 x1 |
引用 | 編輯
karen7710
2007-05-06 21:40 |
4樓
▲ ▼ |
謝謝上面這位大大的教導^^
那麼 題目2.寫出一個遞迴函式來求ㄧ數的最大值質因數(既是因數也是質數) 這題大概要怎麼寫呢? x1 |
引用 | 編輯
karen7710
2007-05-08 21:25 |
6樓
▲ ▼ |
求最大質因數那題,我打了以下這個程式,
可是出現了以下錯誤訊息,無法執行! In function `HighPrime': 6 error before '{' token 麻煩大大看我是哪裡出錯了? 複製程式 #include <stdio.h> #include <stdlib.h> int HighPrime(int,int) int main(void) { int i,n; do { printf("Enter n: "); scanf("%d",&n); if(n<1) break; printf("最大質因數=%d\n",HighPrime(n,n)); //從n檢查回去,則第一個檢查到的因數即為最大因數 }while(n>0); system("pause"); return 0 ; } } int HighPrime(int n,int i) { int j,prime=1; if(n%i==0) { for(j=2;j<=i && prime==1;j++) //檢查i是否為質數 if(i%j==0) prime=0; //整除就不是質數 if(prime) return i; //若prime==1,則i為質數,回傳i並結束函式 } return HighPrime(n,i-1); //否則繼續用i-1代入算 } x0 |
引用 | 編輯
GNUGCC
2007-05-08 22:22 |
7樓
▲ ▼ |
do
{ printf("Enter n: "); scanf("%d",&n); if(n<1) break; printf("最大質因數=%d\n",HighPrime(n,n)); //從n檢查回去,則第一個檢查到的因數即為最大因數 }while(n>0); system("pause"); return 0 ; } } // 這個要拿掉 上面的大括號刪掉應該沒問題... x0 |
引用 | 編輯
karen7710
2007-05-10 19:58 |
10樓
▲ ▼ |
In function `HighPrime':
6 syntax error before '{' token 還是一樣的錯誤~ x0 |
引用 | 編輯
a86980
2007-05-10 20:44 |
11樓
▲ ▼ |
下面是引用karen7710於2007-05-10 19:58發表的 :你在 HighPrime 函式 有一個for指令 少了 "{" 和 "}" 再try try看 x0 |
引用 | 編輯
karen7710
2007-05-11 19:18 |
13樓
▲ ▼ |
複製程式
#include <stdio.h> #include <stdlib.h> int HighPrime(int,int) int main(void) { int i,n; do { printf("Enter n: "); scanf("%d",&n); if(n<1) break; printf("最大質因數=%d\n",HighPrime(n,n)); //從n檢查回去,則第一個檢查到的因數即為最大因數 }while(n>0); system("pause"); return 0 ; } int HighPrime(int n,int i) { int j,prime=1; if(n%i==0) { for(j=2;j<=i && prime==1;j++) //檢查i是否為質數 { if(i%j==0) prime=0; //整除就不是質數 } if(prime) return i; //若prime==1,則i為質數,回傳i並結束函式 } return HighPrime(n,i-1); //否則繼續用i-1代入算 } In function `HighPrime': 6 syntax error before '{' token x0 |
引用 | 編輯
a86980
2007-05-12 09:16 |
16樓
▲ ▼ |
下面是引用karen7710於2007-05-12 07:51發表的 :不錯喔 發問問題 有始有終 送妳鮮花一枚 x0 |
引用 | 編輯
karen7710
2007-06-19 12:35 |
18樓
▲ ▼ |
這個程式,為什麼每次出來的質因數都是1?
複製程式 #include <stdio.h> #include <stdlib.h> int HighPrime(int,int); int main(void) { int i,n; do { printf("Enter n: "); scanf("%d",&n); if(n<1) break; printf("最大質因數=%d\n",HighPrime(n,n)); //從n檢查回去,則第一個檢查到的因數即為最大因數 }while(n>0); system("pause"); return 0 ; } int HighPrime(int n,int i) { int j,prime=1; if(n%i==0) { for(j=2;j<=i*i && prime==1;j++) //檢查i是否為質數 { if(i%j==0) prime=0; //整除就不是質數 } if(prime) return i; //若prime==1,則i為質數,回傳i並結束函式 } return HighPrime(n,i-1); //否則繼續用i-1代入算 } x0 |