老师,能看一下我的代码嘛 ~
来源:1-8 编程练习
慕勒3122218
2023-03-01 11:54:45
问题描述:
老师,请问求语文和数学的总成绩,我的方法是竖着一列一列遍历,if判断是数学还是语文,来分别累加,会不会有些麻烦,有更好的方法嘛~ 老师你看一下,下面是我的代码,下面的截图的方法是不是更好些啊
public class ScoreArrayDemo {
public static void main(String[] args) {
/*
* 在一个二维数组中存放了三名学生的语文和数学的成绩, 从键盘输入三名学生的成绩存储到二维数组中, 分别求语文和数学的总成绩及平均分并输出
*/
// 定义二维数组
int[][] score = new int[3][2];
// 输入成绩
for (int i = 0; i < score.length; i++) {
for (int j = 0; j < score[i].length; j++) {
Scanner sc = new Scanner(System.in);
if (j == 0) {
System.out.println("请输入第" + (i + 1) + "个同学的语文成绩:");
} else {
System.out.println("请输入第" + (i + 1) + "个同学的数学成绩:");
}
score[i][j] = sc.nextInt();
}
}
int sumMath = 0;
int sumChinese = 0;
// 竖着,一列一列的遍历
for (int i = 0; i < score[i].length; i++) {// 列数外循环
if (i == 0) {// 语文
for (int j = 0; j < score.length; j++) {// 行数内循环
sumChinese += score[j][i];
}
} else {// 数学
for (int j = 0; j < score.length; j++) {// 行数内循环
sumMath += score[j][i];
}
}
}
// 求平均值
int averageMath = sumMath / score.length;
int averageChinese = sumChinese / score.length;
System.out.println("语文的总成绩:" + sumChinese);
System.out.println("语文的平均分:" + averageChinese);
System.out.println("数学的总成绩:" + sumMath);
System.out.println("数学的平均分:" + averageMath);
}
}
1回答
同学你好,循环嵌套的执行效率比较低,所以截图中的方式确实会更好一些。
祝学习愉快~
相似问题