总是说找不到这个Scanner
来源:1-8 编程练习
DULULU
2020-08-15 10:59:20
int[][] inta=new int[3][2];
int n=1;
int a=0,b=0;
//从键盘输入学生成绩,要求输入顺序与效果图一致
for(int i=0;i<3;i++){
Scanner sc1=new Scanner(System.in);
System.out.println("请输入第"+n+"个学生的语文成绩");
inta[a][b]=sc1.nextInt();
a++;
Scanner sc2=new Scanner(System.in);
System.out.println("请输入第"+n+"个学生的数学成绩");
inta[a][b]=sc2.nextInt();
b++;
}
int sum1=0,sum2=0;
//求语文的总成绩和平均分
for(int i=0;i<=inta[0].length-1;i++){
sum1=sum1+inta[0][i];
}
System.out.println("语文成绩的总和"+sum1);
//求数学的总成绩和平均分
for(int i=0;i<=inta[1].length-1;i++){
sum2=sum2+inta[1][i];
}
System.out.println("数学成绩的总和"+sum2);1回答
同学你好
1,老师运行同学的代码并没有报找不到Scanner找不到的错,而是索引越界异常的错

同学检查下是否导入了Scanner的包呢

2,对于索引越界异常是因为同学定义了a和b,每次循环完a++和b++,循环了3次,b最后成为了3,所以导致索引越界异常
3,同学定义了n=1,输出语句也使用的n,导致每次输出都是第1个成绩
4,求和的时候可以直接在将成绩存入集合的时候进行求和,不用再重新写两个循环进行求和
整体修改后代码如下
public static void main(String[] args) { //2
int[][] inta=new int[3][2];
// int n=1;
// int a=0,b=0;
int sum1=0,sum2=0;
//从键盘输入学生成绩,要求输入顺序与效果图一致
for(int i=0;i<inta.length;i++){
Scanner sc1=new Scanner(System.in);
System.out.println("请输入第"+(i+1)+"个学生的语文成绩");
inta[i][0]=sc1.nextInt();
sum1=sum1+inta[i][0];
Scanner sc2=new Scanner(System.in);
System.out.println("请输入第"+(i+1)+"个学生的数学成绩");
inta[i][1]=sc2.nextInt();
sum2=sum2+inta[i][1];
}
//求语文的总成绩和平均分
// for(int i=0;i<=inta[0].length-1;i++){
// sum1=sum1+inta[0][i];
// }
System.out.println("语文成绩的总和"+sum1);
int average1=sum1/inta.length;
System.out.println("语文的平均成绩为:"+average1);
//求数学的总成绩和平均分
// for(int i=0;i<=inta[1].length-1;i++){
// sum2=sum2+inta[1][i];
// }
System.out.println("数学成绩的总和"+sum2);
int average2=sum2/inta.length;
System.out.println("数学的平均成绩为:"+average2);
}如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题