#include <stdio.h>
#include <math.h>
double funcos( double e, double x );
int main()
{
double e, x;
scanf("%lf %lf", &e, &x);
printf("cos(%.2f) = %.6f\n", x, funcos(e, x));
return 0;
}
/*
你的代码将被嵌在这里
*/
double funcos( double e, double x )
{
int i,j;
double pwr;
int factorial = 1;
double cos = 0;
double last_cos = 0;
for (i=0;;i+=2)
{
printf("ok");
factorial = 1;
for (j=1;j<i;++j)
{
factorial*=j;
}
pwr = pow(x,i);
last_cos = pwr/factorial;
if((last_cos>0 && last_cos<e) || (last_cos<0 && -last_cos<e))
cos += last_cos;
else
break;
}
return cos;
}
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/986268673836142.jpg "#left")
```**这道题这样写哪里不对,结果总是0,求原因**********
PTA 6-2 疑难杂症求解
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- bekote 2021-12-02 09:47关注
double funcos( double e, double x ) { int i,j; double pwr; int factorial = 1; double cos = 0; double last_cos = 0; for (i=0;;i+=2) { factorial = 1; //阶乘到i for (j=1;j<=i;++j) { factorial*=j; } pwr = pow(x,i); last_cos = pwr/factorial; cos += last_cos; //最后一项小于e就停止计算 if((last_cos>0 && last_cos<e) || (last_cos<0 && -last_cos<e)) break; } return cos; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
- ¥50 成都蓉城足球俱乐部小程序抢票
- ¥15 yolov7训练自己的数据集
- ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
- ¥15 电力市场出清matlab yalmip kkt 双层优化问题
- ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)