2016-01-06 63 views
1

我試圖解決這個練習:如何獲得該數組的索引號[]

編寫一個叫做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嗎?它不顯示student1,student2student3,它顯示student10,student20student30

這裏是我的代碼:

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

變化

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

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

這額外由於輸出的額外numberGrades[numStudents - i]

爲什麼正好爲零?因爲numberGrades是一個數組;當初始化一個數組時,它將它的元素初始化爲默認類型的值。 (在這種情況下,它的int秒的數組,所以它的所有元素都被初始化爲0)

PS:你在這裏看到的冒號之後(在此情況下,55),這個數字:

... student 1: 55 

實際上是一個輸入,而不是一個SYSOUT

+1

更合適的是,它應該改爲:'System.out.print(「輸入學生成績」+ i +「:」);'匹配格式。 – CubeJockey

1

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

它打印出該輸入級學生inumberGrades[numStudents - i]

這些沒有被印刷前加入,其打印每個項目。