首页 > 解决方案 > 使用星号(循环、数组)的图表

问题描述

所以我有一个创建随机数的数组,我想将这些数字除以 10。所以如果数字是 45,我想在彼此下方获得 6 个“p”,在彼此下方获得 4 个星号(让我们将这整个称为一列)。然后我也想要下一个数字,但我希望这些列彼此相邻而不是在下面。如果你看到图片会更容易理解。这就是我得到的:https ://gyazo.com/6e4fcf301784e0c385b9ce0d9c938b6a 这就是我想要的(这里有空格而不是'p':https ://gyazo.com/778027ad74a2a3d2065348def8f431cd

这是我的代码:

    static void Main(string[] args)
    {
        int[] a = RandomFill(10);
        Print(a);

        int asd = 0;

        for (int i = 0; i <= a.Length-1; i++)
        {
            asd = a[i] / 10;

            for (int j = 0; j <= 10 - asd; j++)
            {
                Console.WriteLine("p");
            }
            for (int k = 0; k < asd; k++)
            {
                Console.WriteLine("*" + " ");
            }
            Console.WriteLine();
        }
        Console.ReadLine();


    }

    static int[] RandomFill(int Length)
    {
        Random rd = new Random();

        int[] array = new int[Length];
        for (int i = 0; i < array.Length; i++)
        {
            array[i] = rd.Next(0, 100);
        }
        return array;
    }

    static void Print(int[] a)
    {
        Console.WriteLine();
        foreach( int element in a)
        {
            Console.Write(element + " ");
        }
    }

标签: c#arraysloopscharts

解决方案


似乎工作......

for (int j = 0; j < 10; j++)
            {
                string line = "";
                for (int i = 0; i <= a.Length - 1; i++)
                {
                    if (a[i] >= 10 * (10 - j))
                    {
                        line = line+"*";
                    }
                    else 
                    { 
                        line = line+"p"; 
                    }
                }
                Console.WriteLine(line);
            }

推荐阅读