Итак, я пытаюсь создать программу, в которой я вводю набор чисел, разделенных пробелом,
10 20 30 40 50 60 70 80 90 11 22 33 44 55 66 77 88 99 1 31 31 45 98 99 100 500,
и когда I go больше 100, программа строит звездочки в зависимости от того, в какой десятковый диапазон они попадают (1-10, 11-20 и др. c.)
Однако int 10 не отображается на моей гистограмме. Я играл и возился с меньшими или равными различными индексами, начиная с int, et c, et c. но я думаю, что проблема кроется в моем getData(int[] someArray)
методе, но я не уверен, что.
Код:
public class DistributionChart1 {
public static void main(String[] args) {
int size = 10;
int[] ranges = new int[size]; // each entry represents a range of values
getData(ranges); // pass the entire array into the method
displayChart(ranges);
System.out.println("\nSee you later!!");
} // end of main
public static void getData(int[] someArray) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter a series of numbers between 1 and 100. Separate each number with a space.");
System.out.println("Signal the end by entering a number outside " + "of that range and then press enter.");
System.out.print("Go: ");
// reads an arbitrary number of integers that are in the range 1 to 100
int n;
while (scan.hasNext()) {
n = scan.nextInt();
if (n > 100) {
break;
}
int index = n / 10;
if (index == 10) {
index -= index;
break;
}
// for each integer read in, determine which range it is in and increment the
// corresponding element in the array
someArray[index] += 1;
}
scan.close();
}// end of getData
public static void displayChart(int[] someArray) {
// Print chart title with your name
System.out.println("\nDistribution Chart By simonshampoo" + "\n===================================");
// Print histogram.
for (int i = 0; i < 10; i++) {
int beginning = i * 10 + 1;
int ending = beginning + 9;
System.out.print(beginning + "-" + ending + "\t|");
for (int j = 0; j < someArray[i]; j++) {
System.out.print("*");
}
System.out.println();
}
} //
Выход:
Enter a series of numbers between 1 and 100. Separate each number with a space.
Signal the end by entering a number outside of that range and then press enter.
Go: 10 20 30 40 50 60 70 80 90 11 22 33 44 55 66 77 88 99 1 31 31 45 98 99 100 500
Distribution Chart By simonshampoo
===================================
1-10 |*
11-20 |**
21-30 |**
31-40 |****
41-50 |***
51-60 |**
61-70 |**
71-80 |**
81-90 |**
91-100 |****
See you later!!
У меня есть 10 и 1, оба попадают в диапазон 1-10, но я удалил 1 из установлен и звездочка не отображается, так что это определенно 10. Спасибо большое