基于int数组和负值的直方图

时间:2019-01-24 10:48:41

标签: java arrays histogram

我有一个问题要问你。

https://stackoverflow.com/questions/14975968/vertical-arrangement-with-asterisk#=

您分享此帖子的代码非常好。我明天要考试。请告诉我解决方案。 我在此程序中编辑了int数组。 它是{-1,2,5,3},但是程序未在其中int数组中打印(-1)值。 我想当循环读取此负值时,它越过新行并打印“ *”,并将负值打印到其下划线。

您能告诉我如何用Java做到这一点吗? 谢谢。 https://i.stack.imgur.com/ESsVE.jpg

1 个答案:

答案 0 :(得分:0)

公共静态void main(String [] args)引发IOException {

    int[] a = new int[] {-1,3,-4,2,5};
    int[] tmp = a.clone();

    Arrays.sort(tmp);
    int max = tmp[tmp.length-1];
    int low = tmp[0];
    int last =max;
    if(low<0) {
        last=max-low;
    }

    for (int i = 0; i < last+1; i++) {
        for (int j = 0; j < a.length; j++) {        
            if (i == last ) {
                System.out.print(a[j]);
            } else if(i<max){        
                if (i < max - a[j])
                    System.out.print(" ");
                else
                    System.out.print("*");
            }
            else {
                if (i < max - a[j] )
                    System.out.print("*");
                else
                    System.out.print(" ");
            }
        }
        System.out.println();
    }
}