在数组中排列学生测试分数

我得到一个整数N,它是将要输入的测试分数。 对于每一行,N,都会有一个学生姓名,并跟着他们的考试成绩。 我需要计算他们考试成绩的总和并打印出第二个最小的学生的名字。


所以,我会做的是为学生创建一个类的数组。 该类将有两个名称和分数的实例变量。 然后当所有的输入完成后,你需要做的就是获得它们。 下面是我为这个确切的事情提出的代码。

import java.util.*;

public class testScores {

    public static void main(String[] args){


        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        Student[] students = new Student[n];
        for(int i = 0; i < n; i++){
            students[i] = new Student();
            System.out.print("Enter the student's name");
            students[i].setName(scan.next());
            scan.nextLine();
            System.out.print("Enter the student's score");
            students[i].setScore(scan.nextInt());
            scan.nextLine();
        }

        int total = 0;
        int smallest_name = 0;
        for(int i = 0; i < n; i++){
            total+=students[i].getScore();
            if(students[i].getName().length() < students[smallest_name].getName().length())
                smallest_name = i;
        }

        int second_smallest = 0;
        for(int i = 0; i < n; i++){
            if(students[i].getName().length() > students[smallest_name].getName().length() && students[i].getName().length() < students[second_smallest].getName().length())
                second_smallest = i;
        }

        System.out.println("The sum of the scores is: " + total);
        System.out.println("The second smallest name is: " + students[second_smallest].getName());

    }
}

class Student{

    private String name;
    private int score;

    public Student(){}

    public void setScore(int n){
        score = n;
    }

    public void setName(String n){
        name = n;
    }

    public int getScore(){
        return score;
    }

    public String getName(){
        return name;
    }

}
链接地址: http://www.djcxy.com/p/63851.html

上一篇: Sorting student test scores in an array

下一篇: 3x3 Subrectangles of a Painted Grid