一道定义函数C语言题目

已知,使用结构化程序设计的方法编写程序,求s(x)后面的20项的和,x从键盘输入。(当x=1时,s=0.746824)。要求:1、定义函数longfact(longn),... 已知

,使用结构化程序设计的方法编写程序,求s(x)后面的20项的和,x从键盘输入。(当x=1时,s=0.746824)。
要求:
1、定义函数long fact(long n),返回参数n的阶乘
2、定义函数double power(double x,int n),返回参数x的n次方
3、在主函数中调用上述函数计算s的值并输出

这个是写的
#include <stdio.h>
#include <math.h>
long fact(long n);
double power(double x,int n);
int main(){
int i,j,x,s;
printf("请输入x的值:");
s=0;
j=0;
scanf("%d",x);
for(i=1,i<=39,i++){
if (i%2==1){
s+=pow(-1,j)*power(x,i)/(i*fact(j));
j++;
}
else
continue;
}
}
long fact(long n){
int i,s=1;
for(i=1;i<=n;i++)
s*=i;
return s;
}
double power(double x,int n){
double m;
m=pow(x,n);
return m;
}

希望运行后告诉我一个错怎么改。貌似是精度问题
展开
 我来答
shine1991
科技发烧友

推荐于2016-04-22 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部
#include <stdio.h>
#include <math.h>
long fact(long n);
double power(double x,int n);
int main(){
int i,j,x;//
double s;//
printf("请输入x的值:");
s=0;
j=0;
scanf("%d",&x);//
for(i=1;i<=39;i++){//
if (i%2==1){
s+=pow(-1,j)*power(x,i)/(i*fact(j));
j++;
}
else
continue;
}
printf("%lf",s);//
}
long fact(long n){
int i,s=1;
for(i=1;i<=n;i++)
s*=i;
return s;
}
double power(double x,int n){
double m;
m=pow(x,n);
return m;
}
lswwang
2012-12-15 · 贡献了超过146个回答
知道答主
回答量:146
采纳率:0%
帮助的人:31.9万
展开全部
#include <stdio.h>
#include <math.h>
long fact(long n);
double power(double x,int n);
int main(){
int i,j,x,s;
printf("请输入x的值:");
s=0;
j=0;
scanf("%d",x);//错误。。。
for(i=1,i<=39,i++){ //错误。。。
if (i%2==1){
s+=pow(-1,j)*power(x,i)/(i*fact(j));
j++;
}
else
continue;
}
}
long fact(long n){
int i,s=1;
for(i=1;i<=n;i++)
s*=i;
return s;
}
double power(double x,int n){
double m;
m=pow(x,n);
return m;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式