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.h
的 abs
有 int
的签名,所以你的双打很沮丧:
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)));
#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.h
的 abs
有 int
的签名,所以你的双打很沮丧:
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)));