帮我检查哪里出的问题,输出始终是第一个学生的成绩,输到第5个就报错
import java.util.Scanner;
public class ScoreDemo{
public static void main(String[] args){
//定义一个三行两列的整型二维数组intArray
int[][] intArray=new int[3][2];
int s1=0,s2=0;
//从键盘输入学生成绩,要求输入顺序与效果图一致
Scanner sc=new Scanner(System.in);
for(int i=0;i<intArray.length;i++){
for(int j=0;j<intArray[i].length;j++){
System.out.println("请输入第"+(i+1)+"个学生的语文成绩");
intArray[i][j]=sc.nextInt();
s1=s1+intArray[i][j];
System.out.println("请输入第"+(i+1)+"个学生的数学成绩");
intArray[i][j+1]=sc.nextInt();
s2=s2+intArray[i][j+1];
}
}
System.out.println("语文总成绩:"+s1);
System.out.println("语文平均分:"+s1/intArray.length);
System.out.println("数学总成绩:"+s2);
System.out.println("数学平均分:"+s2/intArray.length);
}
}
正在回答 回答被采纳积分+1
以下为解释。望采纳。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at Debug.Avg.main(Avg.java:69)
这是我eclipse给的错误信息。指数组边界超了。就是下面你打的代码的第二行。
System.out.println("请输入第"+(i+1)+"个学生的数学成绩");
intArray[i][j+1]=sc.nextInt();
s2=s2+intArray[i][j+1];
当j=1时,j+1=2,。此时就指向了第三列。而你这数组是两列。就超范围。不要j+1,j就行了。
以下。是我打的代码。成功实现,你可以参考下。
mport java.util.Scanner;
public class ScoreDemo{
public static void main(String[] args){
//定义一个三行两列的整型二维数组intArray
int[][] intArray=new int[3][2];
//从键盘输入学生成绩,要求输入顺序与效果图一致
Scanner sc=new Scanner(System.in);
for(int i=0;i<intArray.length;i++){
for(int j=0;j<intArray[i].length;j++){
if(j%2==0){
System.out.println("请输入第"+(i+1)+"个学生的语文成绩:");
intArray[i][j]=sc.nextInt();
//System.out.println(intArray[i][j]);
//System.out.println();
}
else
{
System.out.println("请输入第"+(i+1)+"个学生的数学成绩:");
intArray[i][j]=sc.nextInt();
//System.out.println(intArray[i][j]);
//System.out.println();
}
}
}
//求语文的总成绩和平均分
int sum=0;
for(int k=0;k<intArray.length;k++){
sum=sum+intArray[k][0];
}
int average=(sum/intArray.length);
System.out.println("语文的总成绩为:"+sum);
System.out.println("语文的平均分为:"+average);
//求数学的总成绩和平均分
int sum2=0;
for(int m=0;m<intArray.length;m++){
sum2=sum2+intArray[m][1];
}
int average2=(sum2/intArray.length);
System.out.println("语文的总成绩为:"+sum2);
System.out.println("语文的平均分为:"+average2);
}
}
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星