老师帮忙看一下为什么我的语文成绩跟平均分不对
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,在循环中将前面求和的表达式又加了一遍。
所以最后求出的总成绩是不正确的。修改建议如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 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积分~
来为老师/同学的回答评分吧