老师帮我看看我的代码,感觉实现的方式跟您设计的不一样

老师帮我看看我的代码,感觉实现的方式跟您设计的不一样

import java.util.Scanner;
public class ScoreDemo{
   public static void main(String[] args){
       //定义一个三行两列的整型二维数组intArray
        int intArray[][] = new int[3][2];
        Scanner scn = new Scanner(System.in);
       //从键盘输入学生成绩,要求输入顺序与效果图一致
        for(int i=0;i<intArray.length;i++){
           for(int n=0;n<=1;n++){
        	   String kemu;
        	   if (n==0) {
				kemu = "语文";
			}else{
				kemu ="数学";
			}
        	   System.out.println("请输入第"+(i+1)+"个学生的"+kemu+"成绩:");
        	   intArray[i][n] = scn.nextInt();
           }
           
        }
        int sumyuwen = 0;
        int sumshuxue = 0;
       //求语文的总成绩和平均分
        for(int i=0;i<intArray.length;i++){
        	for(int j=0;j<intArray[i].length;j++){
        		if (j==0) {
            		sumyuwen = sumyuwen + intArray[i][j];
				}else{
					sumshuxue = sumshuxue + intArray[i][j];
				}
        	}
        }
       //求数学的总成绩和平均分
        int pingjunyuwen = sumyuwen / intArray.length;
        int pingjunshuxue = sumshuxue / intArray.length;
        System.out.println("语文的总成绩位:" + sumyuwen);
        System.out.println("语文的平均分位:" + pingjunyuwen);
        System.out.println("数学的总成绩位:" + sumshuxue);
        System.out.println("数学的平均分位:" + pingjunshuxue);
   }
}


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

代码像一篇文章,没有唯一的答案,只有怎样把它打磨得更优美。你的代码完全可以实现需求,可读性高、结构清晰,但可以把它写得更优美高效一些,可以考虑去掉求和的循环,让计算求和的过程放到前面循环去做,你的代码稍加改动,具体代码参考如下:

// 定义一个三行两列的整型二维数组intArray
int intArray[][] = new int[3][2];
Scanner scn = new Scanner(System.in);
int sumyuwen = 0;
int sumshuxue = 0;
// 从键盘输入学生成绩,要求输入顺序与效果图一致
for (int i = 0; i < intArray.length; i++) {
for (int n = 0; n <= 1; n++) {
if (n == 0) {
System.out.println("请输入第" + (i + 1) + "个学生的语文成绩:");
intArray[i][n] = scn.nextInt();
sumyuwen+=intArray[i][n];
} else {
System.out.println("请输入第" + (i + 1) + "个学生的数学成绩:");
intArray[i][n] = scn.nextInt();
sumshuxue+=intArray[i][n];
}
}
}
// 求数学的总成绩和平均分
int pingjunyuwen = sumyuwen / intArray.length;
int pingjunshuxue = sumshuxue / intArray.length;
System.out.println("语文的总成绩位:" + sumyuwen);
System.out.println("语文的平均分位:" + pingjunyuwen);
System.out.println("数学的总成绩位:" + sumshuxue);
System.out.println("数学的平均分位:" + pingjunshuxue);

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


  • JasonHing 提问者 #1
    非常感谢老师的解答!
    2017-05-15 00:03:17
  • 老师,看完以后写不出。。还有for循环哪里为什么n要小于等于1呢
    2017-06-05 18:10:49
  • 你好!因为只需要在数组中存储数学和语文的成绩,所以n<=1,循环执行两次就可以了。另外,老师给的是相对完整的代码,你说的写不出,是指哪里不明白呢?
    2017-06-05 18:35:23
qq_小梁_3 2017-06-26 23:05:35

能否从头到尾解释一下代码的意思

  • 我是看注释和变量名就知道了
    2017-06-28 10:56:23
  • 看得我头晕,觉得我现在基础还没打扎实
    2017-06-29 09:37:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师