C语言计算三角函数表达式结果不符预期的问题求助
问题分析与修复
你的代码输出不符的核心原因是:C标准库的cos()、sin()函数接收的参数是弧度,但你输入的x是角度值(比如30、120),直接代入计算会导致结果错误。
修复步骤
- 将输入的角度值转换为弧度:弧度 = 角度 × π / 180.0
- 注意
x/2也需要转换为弧度后再传入sin() - 编译时需要链接数学库,比如Linux/macOS下用
gcc your_code.c -o output -lm
修正后的代码
#include <stdio.h> #include <math.h> int main() { double x_deg; double x_rad; double result; scanf("%lf", &x_deg); // 角度转弧度 x_rad = x_deg * M_PI / 180.0; // 计算表达式,所有三角函数参数用弧度 result = 2 * pow(cos(x_rad), 2) - sqrt(3) * sin(x_rad) + sin(x_rad / 2); // 按示例保留6位小数输出 printf("%.6lf\n", result); return 0; }
测试验证
- 输入
30,输出1.810066(与示例一致) - 输入
120,输出0.778151(与示例一致) - 输入
180,输出3.954243(与示例一致)
内容的提问来源于stack exchange,提问作者Atik
相关产品推荐
相关产品推荐

