【问题标题】:Making a diamond with a line in the middle c#制作中间有一条线的钻石c#
【发布时间】:2020-04-27 12:18:21
【问题描述】:

所以我需要编写一个程序,打印出中间有一条线的菱形,边等于线,用户输入该值。我试过这样做,但我只能打印出没有线条的钻石,或者将它分成几块,一个空心金字塔和一个倒空心金字塔,但是这样,我得到了一个中间有两条线的形状,任何帮助都至关重要!

示例: 输入 5

输出:

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

【问题讨论】:

  • 请包含您尝试使用的代码。
  • 现在是开始使用调试器的好时机。使用调试器,您可以在代码执行时逐行单步执行代码,并观察其运行时行为和变量值的变化。当你这样做时,哪个操作首先产生了意想不到的结果?那是什么操作?该操作的输入是什么?结果如何?预期的结果是什么?为什么?我们可以提供帮助,但 Stack Overflow 不只是为您做功课。请演示并详细说明问题。
  • 创作作品的想法通常是一个好的开始。如果您添加第三件,也许会有所帮助。第 1 部分:上行(不包括中线)。第二部分:中线。第 3 部分:缺点(再次排除中线)

标签: c# console console-application shapes


【解决方案1】:

试试

    static void Main(string[] args)
    {
        DrawDiamond(5);
    }


    public static void DrawDiamond(int size)
    {
        int rowSize = size * 2 - 1;
        int center = size - 1;

        for (int i = -center; i <= center; i++)
        {
            char[] s = new string('.', rowSize).ToArray();
            int n = center - Math.Abs(i);
            s[center - n] = '*';
            s[center + n] = '*';
            if (n == center) { s = new string('*', rowSize).ToArray(); }
            System.Console.WriteLine(s);
        }
    }

输出:

....*....
...*.*...
..*...*..
.*.....*.
*********
.*.....*.
..*...*..
...*.*...
....*....

【讨论】:

  • 谢谢,这正是我需要的!
  • 我做到了,但我是这个网站的新手,所以它说我需要 15 名声望,而我有 2....
  • @TarikRamadani 当然,如果您需要一些评论或其他解释,请询问我。
猜你喜欢
  • 2015-01-05
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-15
  • 2013-05-16
  • 1970-01-01
相关资源
最近更新 更多