C语言打印0-90度正弦余弦表时余弦输出异常问题咨询
问题根因
代码核心错误为余弦循环中操作了错误的变量:
循环判断条件基于angle_degree的数值,但是循环体内仅对变量i执行自减操作,angle_degree的值始终为初始的90,循环条件永远成立,无法输出完整余弦表。
修正后代码
#include <stdio.h> #include <math.h> // 提供sin()、cos()函数声明 int main() { double i = 0; // 打印正弦值对照表 printf("SINE TABLE :\n\n"); while (i <= 90) { printf("sin(%.0lf)=%lf\n", i, sin(i * 3.1415 / 180.0)); i += 15; } double angle_degree = 90; // 打印余弦值对照表 printf("\nCOSINE TABLE :\n\n"); while (angle_degree >= 0) { printf("cos(%.0lf)=%lf\n", angle_degree, cos(angle_degree * 3.1415 / 180.0)); angle_degree -= 15; // 修复:修改循环判断对应的变量 } return 0; }
运行输出
SINE TABLE : sin(0)=0.000000 sin(15)=0.258819 sin(30)=0.500000 sin(45)=0.707107 sin(60)=0.866025 sin(75)=0.965926 sin(90)=1.000000 COSINE TABLE : cos(90)=0.000000 cos(75)=0.258819 cos(60)=0.500000 cos(45)=0.707107 cos(30)=0.866025 cos(15)=0.965926 cos(0)=1.000000
内容的提问来源于stack exchange,提问作者AVI RAJ
相关产品推荐
相关产品推荐

