Изготовление бриллианта с линией посередине c# - PullRequest
0 голосов
/ 27 апреля 2020

Итак, мне нужно создать программу, которая будет распечатывать ромбовидную форму с линией посередине, сторона равна линии, и пользователь вводит это значение. Я пытался сделать это, но могу ли я распечатать только ромб без линии, или сделать его по частям, одну полую пирамиду и одну перевернутую полую пирамиду, но с этим я получаю форму с 2 линиями в середине любая помощь имеет решающее значение!

пример: ввод 5

вывод:

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

1 Ответ

0 голосов
/ 27 апреля 2020

Попробуйте

    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);
        }
    }

Вывод:

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