首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java数组分级

Java数组分级
EN

Stack Overflow用户
提问于 2016-11-07 19:26:52
回答 1查看 5.1K关注 0票数 1

我在找一些关于我的代码的输入。我想要做的是让用户以考试分数的形式输入。用户可以输入他们需要输入多少等级,并将它们存储在数组中。然后程序将在一个曲线上评分,最高的是A,如果一个分数在最高分数的10分以内,它也是一个A,如果它在10到20分之间比较高的分数低一个B,如果它的20到30分比最高的分数小,那么它就是一个C,等等。

我的问题是,我不知道如何将某一元素与最高元素进行比较,以确定它的等级。那么,我的问题是,如何将数组中的某个元素与数组中的最高元素进行比较?

代码语言:javascript
复制
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语句。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-07 19:54:27

如果我是你,我会这样做:

代码语言:javascript
复制
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;
    }
}

应用程序的驱动程序是:

代码语言:javascript
复制
   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");
        }
    }

编辑:

关于“任择议定书”的补充说明,请在评论中提出:

代码语言:javascript
复制
double highest = students[0].getGrade();
for (Student s : students) {
    if (s.getGrade() > highest) {
        highest = s.getGrade();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40473026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档