c语言编程泰勒展开式计算,用C语言实现一个泰勒展开式的计算

用C语言实现一个泰勒展开式的计算0

00e27ab806e4881f8254fe7ae8741834.pngV__上官若月2018.11.14浏览8次分享举报

题目描述输入一个双精度实数x,计算并输出下式的值,直到最后一项的绝对值小于10-4(保留两位小数),s=x-x2/2!+x3/3!-x4/4!+…说明:求和结果用"%.2f"控制输出格式,以保留小数点后2位... 题目描述

输入一个双精度实数x,计算并输出下式的值,直到最后一项的绝对值小于10-4(保留两位小数),s=x-x2/2!+x3/3!-x4/4!+…

说明:求和结果用"%.2f"控制输出格式,以保留小数点后2位。

输入描述

输入一个双精度实数

输出描述

式子的值,输出格式控制符为"%.2f\n"

样例输入1:

0.2

样例输出1:

0.18

样例输入2:

0.85

样例输出2:

0.57

我自己写代码出了一个玄学问题(VS2017):0x80000000 处有未经处理的异常(在 test.exe 中): 0xC00001A5: 检测到无效的异常处理程序例程。 (参数: 0x00000003)。

代码如下:

#define _CRT_SECURE_NO_WARNINGS

#include

#include

#include

extern double fuc1(double x);

int main()

{

double x, s;

scanf("%lf", &x);

s = fuc1(x);

printf("%.2lf\n", s);

system("pause");

return 0;

}

double fuc1(double x)

{

int num=2;

double res=0;

double arr[500];

arr[0] = x;

for (int i = 1;; i++)

{

arr[i] =-(arr[i-1])*(x/num);

num++;

if (fabs(arr[i]) < 1e-4)

{

for (int j = 0; j < i; j++)

{

res = res + arr[j];

break;

}

}

}

return res;

}

我认为很正确,到底哪里出错了,我实在是搞不懂! 展开

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值