double 的 sin() 输出为 0.00000。 (C语言)

sin() output of a double coming out as 0.00000. (C language)

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main(void)
{
    int i;
    double interval;
    
    for(i=0;i<30;i++) 
        {
        interval = i/10.0;
        printf("sin(%lf) = %lf \t", interval, abs(sin(interval)));
        };
    printf("\n+++++++++\n");
    return 0;
}

每个区间项的正弦值为 0.000000。例如 sin(0.60000) = 0.000000

abs 函数是一个 整数 函数。这意味着您有 未定义的行为 因为您使用了不匹配的格式说明符 %lf.

对于浮点数,您需要使用 fabs

来自 stdlib.habsint 的签名,所以你的双打很沮丧:

int abs(int x)

使用 math.h

中的这个
double fabs(double x)

发件人:https://www.tutorialspoint.com/c_standard_library/c_function_fabs.htm

printf("sin(%lf) = %lf\t", 区间, abs(sin(区间)));改变这一行 printf("sin(%lf) = %lf \t", 间隔, fabs(sin(interval)));