课题打卡,请老师查看

来源: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回答

好帮手慕小琪

2020-05-13

同学你好:同学的代码有一处错误,如下图所示:

http://img.mukewang.com/climg/5ebbba7b0918b1a910180352.jpg

应该修改为:

http://img.mukewang.com/climg/5ebbba910975a79409750349.jpg

我们应该在存储完语文成绩时进行j++操作,这样数组才会存满。

因为同学定义的数组是三行两列,我们在存储第一个人的语文成绩时存的位置是intArray[0][0],此时如果不进行j++,那么第一个人的数学成绩也会存到intArray[0][0]的位置。但是如果存储完语文成绩后执行j++,那么数学成绩就会存储到intArray[0][1]位置。

以此类推,这样循环结束后,数组就会被存满,否则只是看上去结果是对的,实际上数组中只有数学成绩而没有语文成绩。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快~

1

0 学习 · 16556 问题

查看课程