你的函数是死循环,所以什么也没有。你好好比一下它们的区别。
回复 10 楼 ying8501
因为楼主不知道"=="是什么?
#include<stdio.h> void main() { double x(double n); double s(double n); double n,sum; sum=s(10); printf("前10项和为: %.0lf\n ",sum); printf("\n"); } double s(double n) { double x(double n); double sum=3; for(n=10;n>=3;n--) sum+=x(n); return sum; } double x(double n) { double y; if(n==1) return y=1; else if(n==2) return y=2; else { y=x(n-1)*x(n-2); return y; } } 这样运行才完全正确
#include<stdio.h> void main() { double x(double n); double s(double n); double n,sum; sum=s(10); printf("前10项和为: %.0lf\n ",sum); printf("\n"); } double s(double n) { double x(double n); double sum=3; for(n=10;n>=3;n--) sum+=x(n); return sum; } double x(double n) { double y; if(n==1) return y=1; else if(n==2) return y=2; else { y=x(n-1)*x(n-2); return y; } } 这样才对