请老师看一下这个代码中是否有需要改进的地方
来源: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"); } }
祝学习愉快!
相似问题