老师帮我看看有什么毛病
来源:1-8 编程练习
誓yao学好Java
2021-06-08 18:20:35

相关代码:
public class ScoreDemo{
public static void main(String[] args){
//定义一个三行两列的整型二维数组intArray
int[][]intArray=new int[3][2];
//从键盘输入学生成绩,要求输入顺序与效果图一致
Scanner sc=new Scanner(System.in);
for (int y = 0; y < intArray.length; y++) {
System.out.println("请输入第" + (y + 1) + "的语文成绩");
intArray[y] = sc.nextInt();
for(int s=0;s<intArray.lenght;s++){
System.out.println("请输入第" + (y + 1) + "的数学成绩");
intArray[s] = sc.nextInt();
}
}
//求语文的总成绩和平均分
int z,p,z1,p1;
z=intArray[0][0]+intArray[1][0]+intArray[2][0];
p=z/3;
System.out.print("语文的总成绩为:"+z);
System.out.print("语文的平均分为:"+p);
//求数学的总成绩和平均分
z1=intArray[0][1]+intArray[1][1]+intArray[2][1];
p1=z1/3;
System.out.print("数学的总成绩为:"+z1);
System.out.print("数学的平均分为:"+p1);
}
}
1回答
好帮手慕小班
2021-06-08
同学你好,1、同学使用了Scanner类,注意使用导包语句,将Scanner导入,比如

2、同学的单词书写有误,注意是length

3、使用sc.nextInt();接收到的是一个int类型的数据,但是在贴出代码中直接使用二维数组的第一行这个一维数组来接收了(比如: intArray[0]),这样相当于使用一维数组来接收了,并不符合语法规范。
4、同学直接在遍历三行两列中的行的时候,就去接收数据了,这样并不能正确接收并向数组中赋值数据,

如上所示,修改后的代码如下
import 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 y=0;y<intArray.length;y++){
System.out.println("请输入第"+(y+1)+"个学生的语文成绩");
intArray[y][0]=sc.nextInt();
System.out.println("请输入第"+(y+1)+"个学生的数学成绩");
intArray[y][1]=sc.nextInt();
}
// 求语文的总成绩和平均分
int z, p, z1, p1;
z = intArray[0][0] + intArray[1][0] + intArray[2][0];
p = z / 3;
System.out.print("语文的总成绩为:" + z);
System.out.print("语文的平均分为:" + p);
// 求数学的总成绩和平均分
z1 = intArray[0][1] + intArray[1][1] + intArray[2][1];
p1 = z1 / 3;
System.out.print("数学的总成绩为:" + z1);
System.out.print("数学的平均分为:" + p1);
}
}祝学习愉快!
相似问题