繁体   English   中英

如何编写垂直直方图

[英]How to write an vertical Histogram

所以,现在我设法像这样输出直方图:

直方图

这张图片的代码如下:

int max = getBiggest(arr);
int min = getSmallest(arr);
int n = max / 50 + 1;
for (int i = 0; i < arr.length; i++) {
    for (int j = min; j < arr[i]; j += n) {
        System.out.print(i + 1);         
    }
    System.out.println("(" + arr[i] + ")");     
}

但我的任务是像这样输出直方图:

直方图垂直

有人可以解释一下如何编写这段代码吗?

尝试这个。

public static void main(String[] args) {
    int[] arr = {12, 28, 11, 16, 21, 12};
    int length = arr.length;
    int max = IntStream.of(arr).max().getAsInt();
    int min = IntStream.of(arr).min().getAsInt();
    System.out.println("Histgramm:");
    for (int h = min; h <= max; ++h) {
        for (int i = 0; i < length; i++)
            System.out.print(arr[i] >= h ? (i + 1) + " " : "  ");
        System.out.println("(" + h + ")");
    }
}

输出:

Histgramm:
1 2 3 4 5 6 (11)
1 2   4 5 6 (12)
  2   4 5   (13)
  2   4 5   (14)
  2   4 5   (15)
  2   4 5   (16)
  2     5   (17)
  2     5   (18)
  2     5   (19)
  2     5   (20)
  2     5   (21)
  2         (22)
  2         (23)
  2         (24)
  2         (25)
  2         (26)
  2         (27)
  2         (28)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM