大欧666 2022-10-16 16:09 采纳率: 66.7%
浏览 66

看看这个代码运行结果为什么是0

//利用泰勒公式求sin(x)的值。
#include<stdio.h>
#include<math.h>
#define esp 1e-5
void main()
{
    int n;
    double x,term,sum=0;
    scanf("%f",&x);
    term=x;
    n=1;
    while(fabs(term)>esp)
    {
        sum+=term;
        n+=2;
        term=term*(-1*x*x)/n/(n-1);
    }
    printf("sin(x)=%.20f",sum);
}
  • 写回答

2条回答 默认 最新

  • honestman_ 2022-10-16 16:12
    关注

    先讲点C语言常识。C语言对变量的类型要求很严格。对子程序的返回类型要求也颇多。这就导致如果变量定义,传递有错误,直接返回值为0。

    举几个例子。

    1,长浮点向整数转换

    int a;

    double b=0.42586;

    a=(int)b;

    printf(”a=d%”,a);

    输出a=0;

    2,强制取整函数INT

    float f=0.786;

    INT(f)值是0

    评论

报告相同问题?

问题事件

  • 创建了问题 10月16日