如何获取Array []的索引号

时间:2016-01-06 19:01:29

标签: java arrays

我正在尝试解决这个问题:

  

编写一个名为GradesAverage的程序,它会提示用户输入   学生人数,从键盘读取,并将其保存在int中   变量名为numStudents。然后它会提示用户输入等级   每个学生都将他们保存在一个名为grade的int数组中。   您的程序应检查等级是否在0到100之间。样本   会议如下:

Enter the number of students: 3
Enter the grade for student 1: 55
Enter the grade for student 2: 108
Invalid grade, try again...
Enter the grade for student 2: 56
Enter the grade for student 3: 57
The average is 56.0

但是,在我的文件中,这就是程序的工作原理(注意“学生”):

Enter the number of students: 3
Enter the grade for student10 55
Enter the grade for student20 56
Enter the grade for student30 57
你能看到10,20和30吗?它不会显示student1student2student3,而是显示student10student20student30

这是我的代码:

import java.util.Scanner;
class GradesAverage {

    public static void main (String[] args) {

        Scanner miScanner = new Scanner(System.in);
        System.out.println("Enter the number of students: ");
        int numStudents = miScanner.nextInt();
        int numberGrades[] = new int[numStudents];
        int averageGrade = 0;
        for (int i = 1; i <= numStudents; i++) {            
            System.out.println("Enter the grade for student" + i + numberGrades[numStudents - i]);
            int grade = miScanner.nextInt();
            averageGrade += grade;
            if (grade < 0 || grade >100) {
                System.out.println("Invalid grade, try again...");
                break;
            }
        }
        double average = averageGrade/numStudents;
        System.out.println("The average is " + average);
    }
}

2 个答案:

答案 0 :(得分:2)

更改

System.out.println("Enter the grade for student" + i + numberGrades[numStudents - i]);

System.out.println("Enter the grade for student " + i + ":");

由于额外numberGrades[numStudents - i]而输出额外的 0

为什么确切为零?因为numberGrades是一个数组;在初始化数组时,它会将其元素初始化为默认类型&#39;值。 (在这种情况下,它是int的数组,所以它的所有元素都被初始化为0)

PS:您在冒号后看到的那个数字(在本例中为55):

... student 1: 55

实际上是输入,而不是 sysout

答案 1 :(得分:1)

System.out.println("Enter the grade for student" + i + numberGrades[numStudents - i]);

打印出来输入学生i numberGrades[numStudents - i]

的成绩

在打印之前不会添加这些内容,而是打印每个项目。