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