C语言打印0~90度正弦值表结果错误,如何修改代码?
C语言正弦表计算错误修复方案
错误原因
C语言math.h库提供的sin()函数要求输入参数为弧度值,你当前代码直接传入角度值参与计算,所以输出结果和标准正弦表不符。
修复方法
需要先把角度值转换为弧度值再传入sin()函数,转换公式为:弧度 = 角度 * π / 180.0
兼容通用编译环境的修改后代码
#include <stdio.h> #include <math.h> // 手动定义精度足够的π常量,避免部分环境不支持M_PI的问题 #define PI 3.14159265358979323846 int main() { double i = 0; printf("SINE TABLE :\n\n"); while(i <= 90){ printf("sin(%.0lf)=%lf\n", i, sin(i * PI / 180.0)); i += 15; } return 0; }
如果你使用的编译环境支持M_PI宏,可以用以下简化写法
注意部分Windows平台编译器需要先定义_USE_MATH_DEFINES宏才能启用M_PI:
#define _USE_MATH_DEFINES #include <stdio.h> #include <math.h> int main() { double i = 0; printf("SINE TABLE :\n\n"); while(i <= 90){ printf("sin(%.0lf)=%lf\n", i, sin(i * M_PI / 180.0)); i += 15; } return 0; }
修改后运行代码即可输出你预期的正确正弦值表。
内容的提问来源于stack exchange,提问作者AVI RAJ
相关产品推荐
相关产品推荐

