老师帮忙看一下为什么我的语文成绩跟平均分不对
public static void main(String[] args) {
/*
1、定义一个三行两列的整型二维数组intArray
2、从键盘输入学生成绩,要求输入顺序与效果图一致。
3、求语文的总成绩和平均分
4、求数学的总成绩和平均分
*/
int[][] intArrary=new int[3][2];
Scanner sc=new Scanner(System.in);
int sum1=0;
int sum2=0;
for(int i=0;i<intArrary.length;i++) {
for(int j=0;j<intArrary[i].length;j++) {
if(j==0) {
System.out.println("请输入第"+(i+1)+"个学生的语文成绩");}
else {
System.out.println("请输入第"+(i+1)+"个学生的数学成绩");
}
intArrary[i][j]=sc.nextInt();
sum1=sum1+intArrary[i][0];
sum2=sum2+intArrary[i][1];
}
}
System.out.println("语文的总成绩为:"+sum1);
System.out.println("语文的平均分为:"+sum1/intArrary.length);
System.out.println("数学的总成绩为:"+sum2);
System.out.println("数学的平均分为:"+sum2/intArrary.length);
}
正在回答
同学你好,这里将 sum1=sum1+intArrary[i][0];与sum2=sum2+intArrary[i][1];放在循环中执行。
比如第一次循环中输入第一个学生的语文成绩为81,sum1此时是81;
当进行第二次循环输入第一个同学的数学成绩时,继续执行sum1=sum1+intArrary[i][0];此时sum1的值是162,在循环中将前面求和的表达式又加了一遍。
所以最后求出的总成绩是不正确的。修改建议如下:
public static void main(String[] args) { /* * * 1、定义一个三行两列的整型二维数组intArray * 2、从键盘输入学生成绩,要求输入顺序与效果图一致。 * 3、求语文的总成绩和平均分 * 4、求数学的总成绩和平均分 */ int[][] intArrary = new int[3][2]; Scanner sc = new Scanner(System.in); int sum1 = 0; int sum2 = 0; for (int i = 0; i < intArrary.length; i++) { for (int j = 0; j < intArrary[i].length; j++) { if (j == 0) { System.out.println("请输入第" + (i + 1) + "个学生的语文成绩"); intArrary[i][0] = sc.nextInt(); sum1 = sum1 + intArrary[i][0]; } else { System.out.println("请输入第" + (i + 1) + "个学生的数学成绩"); intArrary[i][1] = sc.nextInt(); sum2 = sum2 + intArrary[i][1]; } } } System.out.println("语文的总成绩为:" + sum1); System.out.println("语文的平均分为:" + sum1 / intArrary.length); System.out.println("数学的总成绩为:" + sum2); System.out.println("数学的平均分为:" + sum2 / intArrary.length); }
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星