在java中绘制直方图

时间:2018-05-31 21:54:20

标签: java arrays methods

我试图制作一个如下所示的直方图:

 1 - 5: ****
 6 - 10: ******
 11 - 15: **
 16 - 20: **********
 21 - 25: ***********
 26 - 31: ********
 31 - 35: ****
 36 - 41: *******
 41 - 45: ************
 46 - 50: *****************

到目前为止,这是我的代码:

public static void graph (int[] arr) {
    for ( int i=0; i <= 50; i+=5) {
        System.out.println(i+" - " + ( i + 4 ) + " :" );
        for ( int num : arr) {
            if ( num >= i && num <= i + 4)
                System.out.print("*");
        }
    }
}

这是我的输出:

                         0 - 4 :
                       **5 - 9 :
                        10 - 14 :
                       *15 - 19 :
                        20 - 24 :
                      *25 - 29 :
                       30 - 34 :
                      *35 - 39 :
                       40 - 44 :
                       45 - 49 :
                       50 - 54 :

需要一些帮助修复我的代码。我现在已经试图解决这个问题很长一段时间了。此外,如果有人愿意帮助请使用不那么高级的Java代码。我想了解我编码的内容,所以我更喜欢你,只是修改我的代码而不是编写任何新的代码。提前谢谢。

1 个答案:

答案 0 :(得分:0)

试试这个:

public static void graph (int[] arr) {

          for ( int i=0; i <= 50; i+=5){
              System.out.print(i+" - " + ( i + 4 ) + " :" );
              for ( int num : arr) {
                  if ( num >= i && num <= i + 4)
                      System.out.print("*");

                  }
                  System.out.println();
              }
}

输出:(以int[] array = {1, 3, 3, 6, 8, 9, 15, 20, 50};作为数组)

0 - 4 :***

5 - 9 :***

10 - 14 :

15 - 19 :*

20 - 24 :*

25 - 29 :

30 - 34 :

35 - 39 :

40 - 44 :

45 - 49 :

50 - 54 :*