首页 > 解决方案 > 我想知道如何用星号将这个城市变成 90 度(所以它实际上看起来像一个城市)

问题描述

public class HelloWorld
{

     public static void main(String []args)
     {
       int[] arr = {5,10,23,6,9};
        for(int i = 0; i<arr.length; i++)
        {

            for( int j = 0; j< arr[i]; j++)
            {
                System.out.print("*");

            } 

            System.out.println();
        }
     }
}

那是我的代码,但是,它水平打印城市,而我希望它垂直打印。有什么想法吗。

标签: javaarraysfor-loopif-statementprinting

解决方案


由于您是从上到下构建城市(这就是打印的工作方式),因此您可以跟踪当前高度,如果在该高度应该有一个星号,则为每一列添加一个星号,否则为一个空格。

int[] arr = {5,10,23,6,9};
int max = 23; //you should do this dynamically in the general case
while(max > 0) {
    for(int i = 0; i < arr.length; i++) {
        if(arr[i] >= max) {
            System.out.print("*");
        } else {
            System.out.print(" ");
        }
    }
    System.out.println();
    max--;
}

是一个工作示例。


推荐阅读