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

C++使用while循环实现右对齐直角三角形星号图案问题

错误排查

  • 空格打印循环逻辑错误
    你初始化space = i-1后,循环内执行space++会导致space值永远大于0,程序直接陷入无限循环,应该改为每次循环后执行space--,直到space减到0时自动退出循环。
  • 星号打印数量逻辑错误
    当前代码每次循环都会打印n个星号,不符合逐行星号数量递减1的要求,需要将星号循环的终止条件改为j <= n - i + 1,确保每行只打印n - i + 1个星号。

修正后完整代码

#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;
    cout << endl;

    int i = 1;
    while (i <= n)
    {
        //打印空格
        int space = i - 1;
        while (space)
        {
            cout << " ";
            space--;
        }

        //打印星号
        int j = 1;
        while (j <= n - i + 1)
        {
            cout << "*";
            j++;
        }
        cout << endl;
        i++;
    }

    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:45:04