老师,能看一下我的代码嘛 ~

来源: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);
	}
}

https://img.mukewang.com/climg/63fecbed090ce46d04200181.jpg

写回答

1回答

好帮手慕小蓝

2023-03-01

同学你好,循环嵌套的执行效率比较低,所以截图中的方式确实会更好一些。

祝学习愉快~

1

0 学习 · 9886 问题

查看课程