我在找一些关于我的代码的输入。我想要做的是让用户以考试分数的形式输入。用户可以输入他们需要输入多少等级,并将它们存储在数组中。然后程序将在一个曲线上评分,最高的是A,如果一个分数在最高分数的10分以内,它也是一个A,如果它在10到20分之间比较高的分数低一个B,如果它的20到30分比最高的分数小,那么它就是一个C,等等。
我的问题是,我不知道如何将某一元素与最高元素进行比较,以确定它的等级。那么,我的问题是,如何将数组中的某个元素与数组中的最高元素进行比较?
import java.util.Scanner;
public class StudentGrades {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
int students;
System.out.println("How many students do you have?");
students = keyboard.nextInt();
while (students < 0) {
System.out.println("Invalid student amount");
students = keyboard.nextInt();
}
int[] kids = new int[students];
double[] scores = new double[students];
for (int index = 0; index < students; index++) {
System.out.println("Enter score for student #" + (index + 1) + ": ");
scores[index] = keyboard.nextDouble();
}
double high = scores[0];
for (int index = 1; index < scores.length; index++) {
if (scores[index] > high) ;
high = scores[index];
}
if (//place in array >= (highest-10)
System.out.println("Student (whatever there position is) has an A")
}
}所以,如果有人能给我一些关于这个问题的见解,我会很感激,如果你看到任何错误的代码,请告诉我。任何帮助都会很好。为了澄清我的问题,我想找出信的等级。查看底部的if语句。
发布于 2016-11-07 19:54:27
如果我是你,我会这样做:
public class Student implements Comparable{
int index;
private double grade;
public Student(int i, double d) {
grade = d;
index = i;
}
public int getIndex() {
return index;
}
public double getGrade() {
return grade;
}
public void setGrade(double grade) {
this.grade = grade;
}
@Override
public int compareTo(Object o) {
Student s = (Student)o;
if (s.getGrade() < grade){
return -1;
} else if (s.getGrade() == grade) {
return 0;
}
return 1;
}
}应用程序的驱动程序是:
public static void main(String[] args) throws Exception {
Scanner keyboard = new Scanner(System.in);
int amount;
System.out.println("How many students do you have?");
amount = keyboard.nextInt();
while (amount < 0) {
System.out.println("Invalid student amount");
amount = keyboard.nextInt();
}
Student[] students = new Student[amount];
for (int index = 0; index < amount; index++) {
System.out.println("Enter score for student #" + (index + 1) + ": ");
students[index] = new Student(index, keyboard.nextDouble());
}
Arrays.sort(students);
for (int i = 0; i < amount / 10 + 1; i++) {
System.out.println("Student " + (students[i].getIndex() + 1) + " has an A");
}
}编辑:
关于“任择议定书”的补充说明,请在评论中提出:
double highest = students[0].getGrade();
for (Student s : students) {
if (s.getGrade() > highest) {
highest = s.getGrade();
}
}https://stackoverflow.com/questions/40473026
复制相似问题