用于存放学校的作业便于复习。
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

40 строки
1.0 KiB

  1. const readline = require("readline");
  2. const rl = readline.createInterface(
  3. process.stdin, process.stdout
  4. );
  5. let student_num = 10;
  6. let grades = new Array(student_num); // 类似于C/C++中数组的数据结构,空间复杂度O(n)
  7. function input(remain_times) {
  8. if (remain_times <= 0) {
  9. rl.close();
  10. return;
  11. }
  12. rl.question("", (answer) => {
  13. grades[student_num - remain_times] = parseFloat(answer); // 暂时不考虑输入错误
  14. input(remain_times - 1);
  15. });
  16. }
  17. rl.on("close", () => {
  18. let sum = grades.reduce((sum, current) => {
  19. return sum + current;
  20. }, 0); // 时间复杂度O(n)
  21. let average = sum / student_num;
  22. console.log("高于平均分的学生成绩为:", grades.filter((grade) => grade > average)); // 时间复杂度O(n)
  23. });
  24. rl.write("输入"+student_num+"名学生的成绩,一个一行:\n");
  25. input(student_num);
  26. // 输入10名学生的成绩,一个一行:
  27. // 1
  28. // 2
  29. // 3
  30. // 4
  31. // 5
  32. // 6
  33. // 7
  34. // 8
  35. // 9
  36. // 10
  37. // 高于平均分的学生成绩为: [ 6, 7, 8, 9, 10 ]