用C语言实现一个泰勒展开式的计算0
V__上官若月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;
}
我认为很正确,到底哪里出错了,我实在是搞不懂! 展开