优化这段代码 public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入本组学员人数"); int people = input.nextInt(); int[] scores = new int[people]; String[] names = new String[people]; for (int i = 0; i <names.length ; i++) { System.out.println("请输入组员姓名和成绩"); names[i] = input.next(); scores[i]= input.nextInt(); } int total = 0; int max = scores[0]; int min = scores[0]; for (int i = 0; i < scores.length; i++) { if(scores[i] > max){ max = scores[i]; } if(scores[i] < min){ min = scores[i]; } total += scores[i]; } int avg = 0; avg = total / people; System.out.println("平均分"+avg); int j = 0; for (int i = 0; i < scores.length-1; i++) { if (scores[i] <= avg){ j++; System.out.println(names[i]+"低于平均分"); } } System.out.println("低于平均分总人数为"+j); System.out.println("最高分"+max); System.out.println("最低分"+min); for (int i = 0; i < names.length; i++) { if (scores[i] == max){ System.out.println("获得最高分的有"+names[i]); } else if (scores[i] == min) { System.out.println("获得最低分的有"+names[i]); } } }
时间: 2023-03-31 12:02:36 浏览: 85
java中的Io(input与output)操作总结(三)
这段代码可以优化的地方有很多,以下是一些建议:
1. 在输入人数时,可以加入输入校验,确保输入的是正整数。
2. 在输入姓名和成绩时,可以加入输入校验,确保输入的格式正确。
3. 在计算总分时,应该累加每个人的成绩,而不是覆盖。
4. 在计算平均分时,应该将总分除以人数,而不是除以总分。
5. 在统计低于平均分的人数时,应该将 j 的值加一。
6. 在输出获得最高分和最低分的人时,应该使用循环来查找,而不是使用 if 语句。
7. 可以将代码拆分成多个方法,提高代码的可读性和可维护性。
8. 可以使用更好的变量名和注释,使代码更易于理解。
以上是一些优化建议,具体实现可以根据实际情况进行调整。
阅读全文