请老师看一下这个代码中是否有需要改进的地方

来源:1-8 编程练习

Masato1990

2022-08-18 00:07:29

import java.util.Scanner;
public class ScoreDemo{
   public static void main(String[] args){
       Scanner keyboard = new Scanner(System.in);
        String subject = null;//科目名
        int sumC = 0;//语文总分
        int sumM = 0;//数学总分
       //定义一个三行两列的整型二维数组intArray
        int[][] intArray = new int[3][2];
       
       //从键盘输入学生成绩,要求输入顺序与效果图一致
        for(int i = 0;i<intArray.length;i++){
            for(int j = 0;j<intArray[i].length;j++){
                switch(j){
                    case 0:
                        subject = "语文";
                        break;
                    case 1:
                        subject = "数学";
                        break;   
                }
                System.out.println("请输入第"+(i+1)+"个学生的"+subject+"成绩:");
                intArray[i][j] = keyboard.nextInt();
            }
        }
       //求语文的总成绩和平均分
        for(int i=0;i<intArray.length;i++){
            sumC = sumC + intArray[i][0];
        }
        System.out.print("语文的总成绩为:"+sumC+"\n");
        System.out.print("数学的平均分为:"+sumC/intArray.length+"\n");
       //求数学的总成绩和平均分
        for(int i=0;i<intArray.length;i++){
            sumM = sumM + intArray[i][1];
        }
        System.out.print("语文的总成绩为:"+sumM+"\n");
        System.out.print("数学的平均分为:"+sumM/intArray.length+"\n");
   }
}



写回答

1回答

好帮手慕小黑

2022-08-18

同学你好,

1. 同学代码中第31行应该是“语文的平均分为:”而非“数学的平均分为:”;

2. 同学代码中第36行应该是“数学的总成绩为:”而非“语文的总成绩为:”;

3. 建议同学在23行代码后书写

if (j==0){
    sumC = sumC + intArray[i][0];
}
if (j==1){
    sumM = sumM + intArray[i][1];
}

并将下面两个for循环语句删除,当j为0时计算语文总分,当j为1时计算数学总分,修改后代码如下所示:

public class ScoreDemo{
   public static void main(String[] args){
       Scanner keyboard = new Scanner(System.in);
        String subject = null;//科目名
        int sumC = 0;//语文总分
        int sumM = 0;//数学总分
       //定义一个三行两列的整型二维数组intArray
        int[][] intArray = new int[3][2];
        
       //从键盘输入学生成绩,要求输入顺序与效果图一致
        for(int i = 0;i<intArray.length;i++){
            for(int j = 0;j<intArray[i].length;j++){
                switch(j){
                    case 0:
                        subject = "语文";
                        break;
                    case 1:
                        subject = "数学";
                        break;   
                }
                System.out.println("请输入第"+(i+1)+"个学生的"+subject+"成绩:");
                intArray[i][j] = keyboard.nextInt();
               if (j==0){
                  //求语文的总成绩
                   sumC = sumC + intArray[i][0];
               }
               if (j==1){
                   //求数学的总成绩
                   sumM = sumM + intArray[i][1];
               }
            }
        }
        System.out.print("语文的总成绩为:"+sumC+"\n");
        System.out.print("语文的平均分为:"+sumC/intArray.length+"\n");
        System.out.print("数学的总成绩为:"+sumM+"\n");
        System.out.print("数学的平均分为:"+sumM/intArray.length+"\n");
   }
}

祝学习愉快!

1

0 学习 · 9886 问题

查看课程