使用星号的成绩条形图
Bar chart of grades using asterisks
我正在尝试制作一个程序,询问用户他们想要输入多少个成绩。然后,在他们输入成绩后,会打印一个水平条形图,显示有多少成绩落在使用星号的特定范围内(范围是 0-9、10-19、20-29 等到 100)。现在,我的代码接受用户输入,存储输入的成绩并打印指定范围内的值,但这样做不正确(即,如果两个成绩落在 80-89 之间,它将打印 80-89:* 然后 80-89 :* 在它下面与 80-89 相对:**)。最后,除了打印多个 if 语句之外,我想不出更简单的方法来执行此操作。感谢大家的帮助!
public void grades(){
Scanner in = new Scanner(System.in);
System.out.println("How many grades would you like to enter? "); //user input how many grades user would like to enter
int q = in.nextInt();
double[] grades = new double[q]; //initialized array
double sum = 0;
for (int counter = 0; counter < q; counter++){ //user enters # of grades they requested to enter
System.out.println("Enter your grades: ");
double grade = in.nextInt();
grades[counter] = grade; //grade values stored in array
}
System.out.println("Bar chart of grades: "); //title of printed list
for (int i = 0; i < q; i++){ //loop scans grades. Iterate through the grades array with filled values
if (grades[i] <= 9) { //if grades stored in array fall within range
System.out.println("0-9: " + '*'); //print those grades on graph
}
}
}
希望对你有帮助;
grades() {
Scanner in = new Scanner(System.in);
System.out.println("How many grades would you like to enter? "); //user input how many grades user would like to enter
int q = in.nextInt();
double[] grades = new double[q]; //initialized array
double sum = 0;
for (int counter = 0; counter < q; counter++){ //user enters # of grades they requested to enter
System.out.println("Enter your grades: ");
double grade = in.nextInt();
grades[counter] = grade; //grade values stored in array
}
int minInterval = 0;
int maxInterval = 9;
// you should loop for each interval
while (maxInterval < 100) {
System.out.print(minInterval + "-" + maxInterval + ":"); //print those grades on graph
// print one asteriks for each grade falls in range
for (int i = 0; i < q; i++){ //loop scans grades. Iterate through the grades array with filled values
if (minInterval <= grades[i] && grades[i] <= maxInterval ) { //if grades stored in array fall within range
System.out.print("*");
}
}
System.out.println();
minInterval += 9;
maxInterval += 9;
}
}
我正在尝试制作一个程序,询问用户他们想要输入多少个成绩。然后,在他们输入成绩后,会打印一个水平条形图,显示有多少成绩落在使用星号的特定范围内(范围是 0-9、10-19、20-29 等到 100)。现在,我的代码接受用户输入,存储输入的成绩并打印指定范围内的值,但这样做不正确(即,如果两个成绩落在 80-89 之间,它将打印 80-89:* 然后 80-89 :* 在它下面与 80-89 相对:**)。最后,除了打印多个 if 语句之外,我想不出更简单的方法来执行此操作。感谢大家的帮助!
public void grades(){
Scanner in = new Scanner(System.in);
System.out.println("How many grades would you like to enter? "); //user input how many grades user would like to enter
int q = in.nextInt();
double[] grades = new double[q]; //initialized array
double sum = 0;
for (int counter = 0; counter < q; counter++){ //user enters # of grades they requested to enter
System.out.println("Enter your grades: ");
double grade = in.nextInt();
grades[counter] = grade; //grade values stored in array
}
System.out.println("Bar chart of grades: "); //title of printed list
for (int i = 0; i < q; i++){ //loop scans grades. Iterate through the grades array with filled values
if (grades[i] <= 9) { //if grades stored in array fall within range
System.out.println("0-9: " + '*'); //print those grades on graph
}
}
}
希望对你有帮助;
grades() {
Scanner in = new Scanner(System.in);
System.out.println("How many grades would you like to enter? "); //user input how many grades user would like to enter
int q = in.nextInt();
double[] grades = new double[q]; //initialized array
double sum = 0;
for (int counter = 0; counter < q; counter++){ //user enters # of grades they requested to enter
System.out.println("Enter your grades: ");
double grade = in.nextInt();
grades[counter] = grade; //grade values stored in array
}
int minInterval = 0;
int maxInterval = 9;
// you should loop for each interval
while (maxInterval < 100) {
System.out.print(minInterval + "-" + maxInterval + ":"); //print those grades on graph
// print one asteriks for each grade falls in range
for (int i = 0; i < q; i++){ //loop scans grades. Iterate through the grades array with filled values
if (minInterval <= grades[i] && grades[i] <= maxInterval ) { //if grades stored in array fall within range
System.out.print("*");
}
}
System.out.println();
minInterval += 9;
maxInterval += 9;
}
}