课题打卡,请老师查看
来源:1-8 编程练习
慕仙4530950
2020-05-13 15:25:46
public static void main(String[] args) {
//定义一个三行两列的整型二维数组intArray
int[][] intArray = new int[3][2];
int a = 0;
int sum = 0;//语文总成绩
int num = 0;//数学总成绩
//从键盘输入学生成绩,要求输入顺序与效果图一致
Scanner sc = new Scanner(System.in);
for(int i=0;i<intArray.length;i++) {
int j = 0;
System.out.println("请输入第"+(i+1)+"个学生的语文成绩");
intArray[i][j] = sc.nextInt();
sum += intArray[i][j];
System.out.println("请输入第"+(i+1)+"个学生的数学成绩");
intArray[i][j] = sc.nextInt();
num += intArray[i][j];
j++;
}
//求语文的总成绩和平均分
System.out.println("语文的总成绩为"+sum);
System.out.println("语文的总成绩为"+sum/intArray.length);
//求数学的总成绩和平均分
System.out.println("数学的总成绩为"+num);
System.out.println("语文的总成绩为"+num/intArray.length);
}1回答
同学你好:同学的代码有一处错误,如下图所示:

应该修改为:

我们应该在存储完语文成绩时进行j++操作,这样数组才会存满。
因为同学定义的数组是三行两列,我们在存储第一个人的语文成绩时存的位置是intArray[0][0],此时如果不进行j++,那么第一个人的数学成绩也会存到intArray[0][0]的位置。但是如果存储完语文成绩后执行j++,那么数学成绩就会存储到intArray[0][1]位置。
以此类推,这样循环结束后,数组就会被存满,否则只是看上去结果是对的,实际上数组中只有数学成绩而没有语文成绩。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快~
相似问题