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

求助:编写C语言嵌套循环实现2的幂三角形图案

实现2的幂三角形的C语言程序

你的原代码存在三个核心问题:

  • 外层循环步长i+=2会跳过一半的行,无法生成完整的三角形
  • 内部逻辑计算的是组合数(对应杨辉三角),而非你需要的2的幂值
  • 前置空格的计算逻辑有误,导致居中效果不符合预期

以下是修正后的代码,完全实现2的幂三角形的需求:

#include <stdio.h>

int main() {
    int no_row = 5;
    // 取消下方注释可支持用户自定义行数
    // printf("Input number of rows: ");
    // scanf("%d", &no_row);

    // 遍历每一行
    for (int i = 0; i < no_row; i++) {
        // 打印前置空格,实现三角形居中对齐
        for (int blk = 0; blk < no_row - i - 1; blk++) {
            printf("  ");
        }
        // 打印当前行的2的幂序列
        int current_val = 1; // 初始为2^0
        for (int j = 0; j <= i; j++) {
            printf("%4d", current_val);
            current_val *= 2; // 递推得到下一个2的幂
        }
        printf("\n");
    }
    return 0;
}

代码说明

  1. 完整行遍历:外层循环i从0到no_row-1,确保每一行都被输出
  2. 居中对齐:通过no_row - i - 1个双空格控制每行的缩进,让三角形整体居中
  3. 2的幂生成:每行从2^0开始,每次乘以2得到后续的2^1、2^2...2^i,逻辑直接且高效
  4. 格式对齐:用%4d格式化输出,保证每个数字占4个字符宽度,让三角形的每列对齐整齐

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:30:52