求cos(x) = x^0/0!-x^2/2!+x^4/4!-x^6/6!+……
#include "stdio.h"
#include "math.h"
double fact(int n);
int main(void)
{
int repeat, ri;
double e, sum, x;
double funcos(double e, double x);
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%le%le", &e, &x);
sum=funcos(e,x);
printf("sum = %f\n", sum);
}
}
double funcos(double e,double x){
int flag,i;
double item,k;
double fact(int n);
k=0;
flag=1;
i=0;
do{
item=flag*1.0*pow(x,i)/fact(i);
flag=-flag;
k=k+item;
i=i+2;
}while(fabs(item)>=e);
return k;
}
double fact(int n){
int i;
double product;
product=1.00;
for(i=1;i<=n;i++){
product=product*i;
}
return product;
}
求问这个程序中阶乘fact函数为什么不能用int型呢
答案:2 悬赏:0
解决时间 2021-02-28 23:49
- 提问者网友:追忆成伤
- 2021-02-28 07:08
最佳答案
- 二级知识专家网友:努力只為明天
- 2021-02-28 08:33
1. 阶乘的增长速度很快,很有可能超出int的有效范围
2. 你的阶乘结果将用于浮点数的除法,即便你不用int类型,实际上也会被转换成浮点数
2. 你的阶乘结果将用于浮点数的除法,即便你不用int类型,实际上也会被转换成浮点数
全部回答
- 1楼网友:我叫很个性
- 2021-02-28 10:12
double fact(double i) { static double result=1; result *= i; return result; }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯