Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取数组[]的索引号_Java_Arrays - Fatal编程技术网

Java 如何获取数组[]的索引号

Java 如何获取数组[]的索引号,java,arrays,Java,Arrays,我试图解决这个问题: 编写一个名为GradesAverage的程序,提示用户输入 学生人数,从键盘读取,并将其保存为整数 名为numStudents的变量。然后,它会提示用户输入考试成绩 并将每个学生存储在一个名为grades的整数数组中。 您的程序应检查等级是否在0到100之间。样品 会议内容如下: 但是,在我的文件中,程序是这样工作的(注意“学生”): 你能看到10号、20号和30号吗?它不显示student1、student2和student3,而是显示student10、student2

我试图解决这个问题:

编写一个名为GradesAverage的程序,提示用户输入 学生人数,从键盘读取,并将其保存为整数 名为numStudents的变量。然后,它会提示用户输入考试成绩 并将每个学生存储在一个名为grades的整数数组中。 您的程序应检查等级是否在0到100之间。样品 会议内容如下:

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

你能看到10号、20号和30号吗?它不显示
student1
student2
student3
,而是显示
student10
student20
student30

这是我的密码:

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);
    }
}
import java.util.Scanner;
等级储蓄率{
公共静态void main(字符串[]args){
Scanner miScanner=新扫描仪(System.in);
System.out.println(“输入学生人数:”);
int numStudents=miScanner.nextInt();
int numberGrades[]=新int[numStudents];
int平均等级=0;
对于(int i=1;i 100){
System.out.println(“无效等级,请重试…”);
打破
}
}
双倍平均=平均成绩/nums学生;
System.out.println(“平均值为”+平均值);
}
}
更改

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

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

为什么是零?因为
numberGrades
是一个数组;初始化数组时,它将其元素初始化为其默认类型的值。(在本例中,它是
int
s的数组,因此其所有元素都初始化为0)

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

实际上是一个输入,而不是一个系统输出。

System.out.println(“为学生输入分数”+i+numberGrades[numStudents-i])

它会打印出这个输入学生的分数
i
numberGrades[numStudents-i]


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

更恰当地说,应该将其更改为:
System.out.print(“为学生输入分数”+i+“:”)以匹配格式。
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);
    }
}
System.out.println("Enter the grade for student" + i + numberGrades[numStudents - i]);
System.out.println("Enter the grade for student " + i + ":");
... student 1: 55