中易网

求问这个程序中阶乘fact函数为什么不能用int型呢

答案:2  悬赏:0  
解决时间 2021-02-28 23:49
求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;
}
最佳答案
1. 阶乘的增长速度很快,很有可能超出int的有效范围
2. 你的阶乘结果将用于浮点数的除法,即便你不用int类型,实际上也会被转换成浮点数
全部回答
double fact(double i) { static double result=1; result *= i; return result; }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
乐清联合村镇银行ATM地址有知道的么?有点事
为什么我在央视网最近的新闻联播看不了?急!
工业路/福聚路(路口)地址在什么地方,想过去
GPPS,PS,PP,HIPS如何区分
如图,建一座这样的房子需要多少钱、
酒店厨房的吊顶用什么材料?
猎聘网有APP吗?什么名字?怎么搜索出来有好
牛仔裤破了一个洞,怎么补不影响美观?
东平县交通局老湖海事所我想知道这个在什么地
windows10系统安装什么版本的cad
鑫磊工艺石材地址在什么地方,想过去办事
谁能帮我找一段英文的爱情誓言, 并把中文翻
求AKG 314 317 319 比较评价
炸薄脆如何酥脆
寿昌市场在哪里啊,我有事要去这个地方
推荐资讯
芙蓉兴盛便利超市NO.粤·1707在什么地方啊,
微信一天最高能转账多少?
亲子房母婴生活馆在什么地方啊,我要过去处理
带有自字头的有哪些大全
中国那些城市有骑警
LOL盲僧的龙的传人什么时候会有?至高之拳和
3D MAX 圆柱体怎么折90度弯...谢谢详细点
30岁的男人应该怎样改变自己
公司拖欠年终奖该去那里举报
关爱满屋幼儿园地址在什么地方,想过去办事
茄子汁能祛痣么
怎么煮黑鱼吃了会对刀疤好
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?