Java 如何垂直打印一些数字对应的星号?
我试图使直方图垂直显示,我的输出给出了错误的模式 输入:Java 如何垂直打印一些数字对应的星号?,java,arrays,histogram,Java,Arrays,Histogram,我试图使直方图垂直显示,我的输出给出了错误的模式 输入: unqNums = [0.0, 2.0, 1.0, 5.0] repeated = [2, 2, 1, 1] 输出: * * * * * * 0.0, 2.0, 1.0, 5.0 我的代码: System.out.println(Arrays.toString(gradesNoRepead)); //[0.0, 2.0, 1.0, 5.0] System.out.println(Arrays.toStri
unqNums = [0.0, 2.0, 1.0, 5.0]
repeated = [2, 2, 1, 1]
输出:
* *
* * * *
0.0, 2.0, 1.0, 5.0
我的代码:
System.out.println(Arrays.toString(gradesNoRepead));
//[0.0, 2.0, 1.0, 5.0]
System.out.println(Arrays.toString(repeatedVal));
//[2, 2, 1, 1]
//getting the max rep
int mxRep = Main.getMax(repeatedVal);
for(int i = mxRep; i > 0; --i){
for(int l=0; l<gradesNoRepead.length; ++l){
System.out.print((gradesNoRepead[l] >= i) ? " * " : " ");
}
System.out.println();
}
for (int m = 0; m < gradesNoRepead.length; m++) {
System.out.print(" " + gradesNoRepead[m] + " ");
}
System.out.println(Arrays.toString(gradesNoRepead));
//[0.0, 2.0, 1.0, 5.0]
System.out.println(Arrays.toString(repeatedVal));
//[2, 2, 1, 1]
//获得最大代表
int mxRep=Main.getMax(repeatedVal);
对于(int i=mxRep;i>0;--i){
对于(int l=0;l=i)?“*”:”;
}
System.out.println();
}
对于(int m=0;m
您的问题是,在输出*
值的循环中,您迭代并测试了错误数组中的值(gradesNoRepead
),您应该使用repeatedVal
:
for(int l=0; l<repeatedVal.length; ++l){
System.out.print((repeatedVal[l] >= i) ? " * " : " ");
}
for(int l=0;l=i)?" * " : " ");
}
请注意,您还需要在输出字符串中添加一些空格,以使它们与gradesNoRepead
值的宽度正确匹配