You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++代码无法运行输出三角函数表(初学者编程问题)

故障根因

程序长时间无响应和电脑性能无关,是代码逻辑错误导致的死循环,具体问题点:

  • while (ang_deg < 91); 语句末尾多余的分号是核心故障。C++中语句末尾的分号代表语句结束,这里的分号会让while循环的执行体变成空语句,程序会无限循环判断ang_deg < 91的条件,永远不会执行后续大括号内的业务代码,因此一直卡住无输出。
  • 表头输出逻辑位置错误:你把表头打印代码放在了循环内部,会导致每输出一行数值就重复打印一次表头,不符合常规表格的输出格式。
  • 边界值未处理:90度的正切值理论上为无穷大,直接调用tan()函数计算会触发除以0的浮点异常,输出无意义的异常值,需要单独做标记处理。
修正后代码
#define _USE_MATH_DEFINES
#include <iostream>
#include <cmath>
#include <iomanip>

using namespace std;

int main()
{
    double ang_deg = 0;
    double ang_rad = 0;

    // 循环外仅打印一次表头
    cout << setw(7) << "ANGLE" << setw(7) << "SIN" << setw(7) << "COS" << setw(7) << "TAN" << endl;
    cout << fixed << setprecision(3);

    // 去掉while后的多余分号
    while (ang_deg < 91)
    {
        ang_rad = (ang_deg * M_PI) / 180.0;
        cout << setw(7) << ang_deg << setw(7) << sin(ang_rad) << setw(7) << cos(ang_rad);
        // 单独处理90度正切无穷大的边界情况
        if (ang_deg == 90) {
            cout << setw(7) << "inf" << endl;
        } else {
            cout << setw(7) << tan(ang_rad) << endl;
        }
        ang_deg += 15;
    }
    return 0;
}
运行说明

修正后的代码可以瞬间运行完成,输出0到90度间隔15度的三角函数对照表,不会再出现长时间无响应的问题。

内容的提问来源于stack exchange,提问作者Triston_s

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 05:31:07