私は、次の出力を持つヒストグラムプログラムを作成するための割り当てで、初心者のJavaクラスを取ります:(100と10はユーザー入力です)。Java(ヒストグラム)の初め
いくつの数字ですか? 100 間隔はいくつですか? 10
Histogram
--------------------------------------------------------
1 ****(4)
2 ******(6)
3 ***********(11)
4 *****************(17)
5 **************************(26)
6 *************************(25)
7 *******(7)
8 ***(3)
9 (0)
10 *(1)
--------------------------------------------------------
私のコードはあまり、誰も私が間違って何が起こっているかを指摘することができます、しかし、おかげで次のような出力を与えています。スレッド "メイン" java.lang.ArrayIndexOutOfBoundsExceptionで
例外:Lab6.mainで10 (Lab6.java:44入力について
How Many Numbers? 10 How Many Intervals? 10 Histogram -------------------------------------------------------- 1 **********(10) 2 **********(10) 3 **********(10) 4 **********(10) 5 **********(10) 6 **********(10) 7 **********(10) 8 **********(10) 9 **********(10) 10 **********(10)
、100及び10は、I、エラーメッセージを取得します)私は以下の行44をマークしました。
このコードには、次のリンクがあります。
intervalValue[j]++;
私は発電機(の.jar)ファイルを添付するかどうかはわかりませんが、ちょうど私たちのためにランダム# 'sのを発生することになっています。再度、感謝します。
mport java.util.Scanner;
public class Lab6 {
public static void main(String[] args) {
int numbers, intervals;
double intervalWidth;
double max, mins, range;
Scanner keyboard = new Scanner(System.in);
System.out.print("How Many Numbers? ");
numbers = keyboard.nextInt();
System.out.print("How Many Intervals? ");
intervals = keyboard.nextInt();
double [] generate = new double[numbers];
generate = randomGenerator(numbers);
max = maximum(generate);
mins = minimum(generate);
range = max - mins;
intervalWidth = range/intervals;
int [] intervalValue = new int[intervals];
for (int i=0; i < generate.length; i++) {
for (int j = 0; j<generate.length; j++){
double imin = mins+j*intervalWidth;
double imax = max +j*(intervalWidth);
if(generate[i] >= imin && generate[i] < imax)
intervalValue[j]++; //LINE 44
}
}
System.out.println("Histogram");
System.out.println("--------------------------------" +
"------------------------");
for (int a=0; a < intervalValue.length; a++) {
System.out.print(" " + (a+1) + " ");
for (int b=0; b < intervalValue[a]; b++) {
System.out.print("*");
}
System.out.println("(" + intervalValue[a] + ")");
}
}
private static double [] randomGenerator(int number) {
double [] generate;
generate = Generator.getData(number);
return generate;
}
private static double maximum(double [] a) {
double max = a[0];
for (int i = 1; i < a.length; i++) {
if (a[i] > max) {
max = a[i];
}
}
return max;
}
private static double minimum(double [] a) {
double mins = a[0];
for (int i = 1; i < a.length; i++) {
if (a[i] < mins) {
mins = a[i];
}
}
return mins;
}
}
残念ながら、私はジェネレータクラスなしではコンパイルできません。 – Kekoa
であり、バイナリファイルのコンテンツを投稿しようとしないコードフォーマッタ(eclipseに組み込まれています)を使用することを検討することもできます。それは助けにはなりません:) –