Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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 - Fatal编程技术网

如何在Java中修复此错误

如何在Java中修复此错误,java,Java,我写了这段代码,代码正在运行,但我在结果中遇到了问题 package calcavrage; import java.util.ArrayList; import java.util.Scanner; public class InfoStudent { int avrage; int Grade = 0; String NameOfStudent; ArrayList<String> StudentNames = new ArrayList&

我写了这段代码,代码正在运行,但我在结果中遇到了问题

package calcavrage;

import java.util.ArrayList;
import java.util.Scanner;


public class InfoStudent {

    int avrage;
    int Grade = 0;
    String NameOfStudent;
    ArrayList<String> StudentNames = new ArrayList<>();
    ArrayList<Integer> Grade1 = new ArrayList<>();

    public void infoStudent()
    {
     Scanner s = new Scanner(System.in);
     System.out.println("Enter Number Of Studens");
     int NoOfStudents = s.nextInt();
     for (int i = 0; i < NoOfStudents; i++)
     {
         System.out.println("Enter Name Of Student");
         NameOfStudent= s.next();
         StudentNames.add(NameOfStudent);
         System.out.println(" Enter Student Grade");
         Grade = Grade+ s.nextInt();
         Grade1.add(Grade);
     }
     avrage = Grade / NoOfStudents; 
     System.out.println("The Avrage is = " + avrage);
     System.out.println("The names of the student is " + StudentNames + " And His Grade " + Grade1); 
     }
}
我想要的结果如下:

Enter Number Of Studens
3
Enter Name Of Student
aa
 Enter Student Grade
85
Enter Name Of Student
ww
 Enter Student Grade
98
Enter Name Of Student
qq
 Enter Student Grade
77
The Avrage is = 86
The names of the student is [aa, ww, qq] And His Grade [85, 98, 77] 

如何获得此结果?

您应该将单个学生的成绩添加到列表中,而不是部分总和:

 for (int i = 0; i < NoOfStudents; i++)
 {
     System.out.println("Enter Name Of Student");
     NameOfStudent= s.next();
     StudentNames.add(NameOfStudent);
     System.out.println(" Enter Student Grade");
     int g = s.nextInt(); // read a single grade into a variable
     Grade = Grade + g; // add it to the sum
     Grade1.add(g); // add the single grade to the list
 }
您可以这样做:

for (int i = 0; i < NoOfStudents; i++)
{
    System.out.println("Enter Name Of Student");
    NameOfStudent= s.next();
    StudentNames.add(NameOfStudent);
    System.out.println(" Enter Student Grade");
    int stuGrade = s.nextInt()
    Grade = Grade+stuGrade;
    Grade1.add(stuGrade);
 }
for(int i=0;i
这将为您提供所需的解决方案

import java.util.ArrayList;
import java.util.Scanner;

public class InfoStudent {

int avrage;
int Grade = 0;
int sum=0;
String NameOfStudent;
ArrayList<String> StudentNames = new ArrayList<String>();
ArrayList<Integer> Grade1 = new ArrayList<Integer>();

public void infoStudent()
{
 Scanner s = new Scanner(System.in);
 System.out.println("Enter Number Of Studens");
 int NoOfStudents = s.nextInt();
 for (int i = 0; i < NoOfStudents; i++)
 {
     System.out.println("Enter Name Of Student");
     NameOfStudent= s.next();
     StudentNames.add(NameOfStudent);
     System.out.println(" Enter Student Grade");

     Grade = s.nextInt();
     sum=sum+Grade;
     Grade1.add(Grade);

 }
 avrage = sum / NoOfStudents; 
 System.out.println("The Avrage is = " + avrage);
 System.out.println("The names of the student is " + StudentNames + " And His Grade " + Grade1); 
 }
public static void main(String args[]){
    InfoStudent is=new InfoStudent();
    is.infoStudent();
}
}

非常感谢,但是如果我想要像{学生的名字和他的年级}结果的其他含义{学生的名字是WW和他的88年级}和其他学生一样的结果,我还有其他问题
for (int i = 0; i < NoOfStudents; i++)
{
    System.out.println("Enter Name Of Student");
    NameOfStudent= s.next();
    StudentNames.add(NameOfStudent);
    System.out.println(" Enter Student Grade");
    int stuGrade = s.nextInt()
    Grade = Grade+stuGrade;
    Grade1.add(stuGrade);
 }
import java.util.ArrayList;
import java.util.Scanner;

public class InfoStudent {

int avrage;
int Grade = 0;
int sum=0;
String NameOfStudent;
ArrayList<String> StudentNames = new ArrayList<String>();
ArrayList<Integer> Grade1 = new ArrayList<Integer>();

public void infoStudent()
{
 Scanner s = new Scanner(System.in);
 System.out.println("Enter Number Of Studens");
 int NoOfStudents = s.nextInt();
 for (int i = 0; i < NoOfStudents; i++)
 {
     System.out.println("Enter Name Of Student");
     NameOfStudent= s.next();
     StudentNames.add(NameOfStudent);
     System.out.println(" Enter Student Grade");

     Grade = s.nextInt();
     sum=sum+Grade;
     Grade1.add(Grade);

 }
 avrage = sum / NoOfStudents; 
 System.out.println("The Avrage is = " + avrage);
 System.out.println("The names of the student is " + StudentNames + " And His Grade " + Grade1); 
 }
public static void main(String args[]){
    InfoStudent is=new InfoStudent();
    is.infoStudent();
}
}
Enter Number Of Studens
3
Enter Name Of Student
aa
 Enter Student Grade
1
Enter Name Of Student
bb
 Enter Student Grade
2
Enter Name Of Student
cc
 Enter Student Grade
3
The Avrage is = 2
The names of the student is [aa, bb, cc] And His Grade [1, 2, 3]