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

如何用C语言实现多个金字塔图案横向并排输出?

解决横向并排打印多个金字塔的问题

你的代码现在是逐个完整输出金字塔,所以会垂直堆叠。要让它们横向并排,得换个逻辑:按行处理,每一行同时打印所有金字塔的对应行内容,最后再换行。

修改后的代码如下:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i, row, space, star, n;
    scanf("%d", &i);

    if(i>0 && i<100){
        // 外层循环遍历金字塔的每一行,从第1行到第i行
        for(row = 1; row<=i; row++){
            // 每一行里循环i次,打印i个金字塔的当前行
            for(n=1; n<=i; n++){
                int mathforspace = i-row;
                int mathforstar = (2*row)-1;
                // 打印当前金字塔行的前置空格
                for(space=1; space<=mathforspace; space++){
                    printf(" ");
                }
                // 打印当前金字塔行的星号
                for(star=1; star<=mathforstar; star++){
                    printf("*");
                }
                // 每个金字塔之间加一个空格分隔(可选,不加的话会挨在一起)
                printf(" ");
            }
            // 所有金字塔的当前行都打印完后,换行
            printf("\n");
        }
    }
    return 0;
}

关键修改说明:

  • 把原代码的外层循环(遍历金字塔数量)和中层循环(遍历行)交换顺序,先遍历行,再在每行里遍历所有金字塔
  • 每个金字塔的当前行打印完成后,不着急换行,等该行所有金字塔都打印完再统一换行
  • 可选:在每个金字塔后加一个空格printf(" ");,避免多个金字塔挤在一起,视觉效果更清晰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:45:31