引用 | 编辑
GNUGCC
2007-05-05 21:22 |
1楼
▲ ▼ |
1.
int Pow(int x) { if ( x == 1 ) return 1; return x + Pow(x - 1); } ![]() |
引用 | 编辑
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); } ![]() |
引用 | 编辑
海洋天使
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); } 这样才是正确呼叫递回的方法 ![]() |
引用 | 编辑
karen7710
2007-05-06 21:40 |
4楼
▲ ▼ |
谢谢上面这位大大的教导^^
![]() 那么 题目2.写出一个递回函式来求ㄧ数的最大值质因数(既是因数也是质数) 这题大概要怎么写呢? ![]() |
引用 | 编辑
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代入算 } ![]() |
引用 | 编辑
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 ; } } // 这个要拿掉 上面的大括号删掉应该没问题... ![]() |
引用 | 编辑
karen7710
2007-05-10 19:58 |
10楼
▲ ▼ |
In function `HighPrime':
6 syntax error before '{' token 还是一样的错误~ ![]() |
引用 | 编辑
a86980
2007-05-10 20:44 |
11楼
▲ ▼ |
下面是引用karen7710于2007-05-10 19:58发表的 :你在 HighPrime 函式 有一个for指令 少了 "{" 和 "}" 再try try看 ![]() ![]() |
引用 | 编辑
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 ![]() |
引用 | 编辑
a86980
2007-05-12 09:16 |
16楼
▲ ▼ |
下面是引用karen7710于2007-05-12 07:51发表的 :不错喔 发问问题 有始有终 送你鲜花一枚 ![]() ![]() |
引用 | 编辑
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代入算 } ![]() |