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

C# 图形打印问题:如何将单入参打印代码修改为支持双入参

调整方案

你现有代码的竖线高度是和当前横线长度绑定的,改为双入参只需拆分这两个逻辑即可,两个入参分别对应初始横线长度、每段竖线的统一高度,具体调整如下:

  • 将方法入参从1个改为2个,分别赋值给初始横线长度变量currentLineLen和竖线高度变量verticalHeight
  • 把原代码中竖线循环的上限input - 1替换为第二个入参verticalHeight,解除竖线高度和当前横线长度的绑定关系
  • 其余原有横线长度迭代、右偏移量计算的逻辑无需修改

调整后完整代码

// 两个入参分别为:初始横线长度initLineLen、每段竖线高度verticalHeight
void PrintShape(int initLineLen, int verticalHeight)
{
    int currentLineLen = initLineLen;
    int offset = currentLineLen;

    while (currentLineLen > 0)
    {
        // 打印当前段横线
        for (int z = 1; z <= currentLineLen; ++z)
        {
            Console.Write("-");
        }
        Console.WriteLine();
        // 打印当前段下方的竖线,高度取第二个入参
        for (int i = 1; i <= verticalHeight; ++i)
        {
            for (int z = 1; z <= offset; ++z)
            {
                if (z != offset)
                {
                    Console.Write(" ");
                }
                else
                {
                    Console.WriteLine("|");
                }
            }
        }
        // 补全下一段横线的前置空格
        for (int j = 1; j < offset; j++)
        {
            Console.Write(" ");
        }
        // 更新下一段横线长度和偏移位置
        currentLineLen = currentLineLen - 2;
        offset = offset + currentLineLen - 1;
    }
}

测试示例

调用PrintShape(5, 2)的输出效果:

-----
  |
  |
   ---
    |
    |
     -

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:24:03