如何获取 Array[] 的索引号

Posted

技术标签:

【中文标题】如何获取 Array[] 的索引号【英文标题】:How to get the index number of the Array[] 【发布时间】:2016-01-06 19:01:29 【问题描述】:

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

编写一个名为 GradesAverage 的程序,提示用户输入 学生人数,从键盘读取,并将其保存在 int 中 名为 numStudents 的变量。然后它会提示用户输入等级 每个学生并将它们保存在一个称为成绩的 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);
    

【问题讨论】:

【参考方案1】:

改变

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是一个数组;初始化数组时,它将其元素初始化为其默认类型的值。 (这里是ints的数组,所以它的所有元素都初始化为0)

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

... student 1: 55

实际上是一个输入,而不是一个sysout

【讨论】:

更恰当的是,应该改为:System.out.print("Enter the grade for student " + i + ":"); 以匹配格式。【参考方案2】:

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

它打印出来这个输入学生的成绩inumberGrades[numStudents - i]

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

【讨论】:

以上是关于如何获取 Array[] 的索引号的主要内容,如果未能解决你的问题,请参考以下文章

php:如何从数字索引中获取关联数组键?

如何在不使用PHP的循环的情况下获取对象数组的索引

如何沿一个轴获取 NumPy 数组中最大元素的索引

如何找到现有数组的下一个数字索引?

如何找到现有数组的下一个数字索引?

js中已知一个array,怎样获取一个map在array中的索引