저는 다음과 같은 출력으로 히스토그램 프로그램을 만들기위한 과제로 초급 Java 클래스를 사용합니다 : (100 및 10은 사용자 입력입니다.)시작 Java (히스토그램)
몇 개의 번호가 있습니까? 100 간격은 몇 개입니까? 10
내 코드는 다음과 같은 출력을 제공하지만 아무도 내가 잘못되어 가고 있다는 것을 지적 할 수 있습니다. 감사합니다. 스레드 "주요"java.lang.ArrayIndexOutOfBoundsException의
예외 : Lab6.main 10 (Lab6.java:44 입력에 대한
, 100, 10 나는 오류 메시지가) 나는 아래 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)
이 코드로 연결되는 링크는 다음과 같습니다.
intervalValue[j]++;
내가 발전기 (.JAR) 파일을 첨부하는 방법을 잘 모르겠어요, 단지 우리를 위해 임의 #의를 생성 해. 다시 한번 감사드립니다.
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
이고 이진 파일의 내용을 게시하려고 시도하지 않는 코드 포맷터 (이클립스가 내장되어 있음)를 사용하는 것이 좋습니다. 그것은 도움이되지 않습니다 :) –