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

如何实现可重复输出的三角形图案?C语言新手编程求助

解决三角形图案重复生成的问题

你的需求是输入两个整数(比如2 3),第一个控制三角形的重复次数,第二个控制单个三角形的大小,输出对应次数的右对齐三角形。

现有代码的问题

  1. 只读取了一个输入值,没处理重复次数这个参数
  2. 没有循环逻辑来重复生成三角形
  3. 变量m在生成完一个三角形后没有重置,导致后续三角形的星号数量会持续累加,不符合预期

修改后的代码

#include <stdio.h>  

int main()  
{  
    int repeat, size;
    // 读取两个输入:第一个是重复次数,第二个是三角形的大小
    scanf("%d %d", &repeat, &size);  

    // 外层循环控制三角形的重复次数
    for(int r = 0; r < repeat; r++)
    {
        int m = 1; // 每次生成新三角形时,重置星号计数变量
        // 内层循环生成单个三角形
        for(int i = size; i >= 1; i--)  
        {  
            // 打印前置空格
            for(int j = 1; j <= i - 1; j++)  
            {  
              printf(" ");  
            }  
            // 打印星号
            for(int k = 1; k <= m; k++)  
            {  
                printf("*");  
            }  
            printf("\n");  
            m++;  
        }
    }
    return 0;
}

代码改动说明

  • 新增repeat变量存储重复次数,size存储三角形的大小,通过scanf("%d %d", &repeat, &size)读取两个输入参数
  • 外层添加for循环,循环repeat次来生成多个三角形
  • 将m的定义移到外层循环内部,每次生成新三角形时重置为1,保证每个三角形的星号从1开始递增
  • 修复了原代码中printf("\n")的语法错误(原代码里是printf(" "),属于格式问题)

测试效果

输入:

2 3

输出:

*
  **
 ***
   *
  **
 ***

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 03:15:40