【发布时间】:2021-04-16 17:10:01
【问题描述】:
任务:根据 sin(x) 的泰勒级数计算,使用名为 mysin 的 double 函数将其传递给 double 变量。从用户那里取一个 x 值并使用 mysin 函数计算 sin(x)。
问题是程序给了我错误的 sin(x) 值。我一直试图解决这个问题大约 4 个小时,但找不到。是因为 sin(x) 函数还是我在代码中遗漏了什么?
我的代码:
#include <stdio.h>
double mysin(double x)
{
double value = x;
double sum = x;
int neg_pos = 1;
int fac = 1;
int counter = 0;
while(1)
{
neg_pos *= -1;
fac += 2;
value = value/(fac*(fac-1));
value = value*x*x*neg_pos;
sum += value;
//printf("Hello");
counter++;
if (counter == 100) break;
}
return sum;
}
int main()
{
double number;
scanf("%lf",&number);
printf("%g",mysin(number));
//printf("%g",number);
}
【问题讨论】:
-
问题是程序给了我错误的 sin(x) 值。我一直试图解决这个问题大约 4 个小时,但找不到。是因为 sin(x) 函数还是我的代码中遗漏了什么?
-
我不小心把questin放在了代码的底部。对不起:(
-
那个阶乘累加看起来....错了。
-
您是否尝试过使用调试器在监视变量及其值的同时逐句执行代码?在计算中的任何错误变得清晰之前不需要多次迭代。