鱼C论坛

 找回密码
 立即注册
查看: 1544|回复: 3

[已解决]求助

[复制链接]
发表于 2021-11-22 12:07:54 | 显示全部楼层 |阅读模式
10鱼币
哪个大佬能帮我一下?
编写一程序实现以下功能: 分别定义以下函数:(1)读入班级成绩,输入某班学生某门课的成绩(最多不超过30人),当输入为负数时,提示输入结束。(2)求平均成绩的函数,函数返回值返回平均成绩,(4)编写函数统计成绩低于平均分的学生人数的百分比,并返回 ,(4)主函数中通过调用以上函数求解成绩低于平均分的学生人数的百分比。
最佳答案
2021-11-22 12:07:55
C 代码:
  1. #include <stdio.h>

  2. int student[30], n = 0;

  3. /*读入班级成绩,输入某班学生某门课的成绩,当输入为负数时,提示输入结束。*/
  4. void input(){
  5.     while(1){
  6.         int x;
  7.         scanf("%d", &x);
  8.         if(x > 0) student[n++] = x;
  9.         else break;
  10.     }  
  11. }

  12. /*求平均成绩的函数,函数返回值返回平均成绩*/
  13. float average(int arr[], int n){
  14.     int res = 0;
  15.     for(size_t i = 0; i < n; i++){
  16.         res += arr[i];
  17.     }
  18.     return (float)res/n;
  19. }

  20. /*编写函数统计成绩低于平均分的学生人数的百分比,并返回 */
  21. float fail_ratio(int arr[], int n, float score){
  22.     int res = 0;
  23.     for(size_t i = 0; i < n; i++){
  24.         if(arr[i] < score){
  25.             res++;
  26.         }
  27.     }
  28.     return ((float)res/n)*100;
  29. }

  30. int main()
  31. {
  32.     input(); // 调用函数
  33.     printf("成绩低于平均分的学生人数的百分比:%.2f%%", fail_ratio(student, n, average(student, n))); // 调用函数
  34.     return 0;
  35. }
复制代码
C++ 代码:
  1. #include <iostream>
  2. #include <iomanip>

  3. int student[30], n = 0;

  4. /*读入班级成绩,输入某班学生某门课的成绩,当输入为负数时,提示输入结束。*/
  5. void input(){
  6.     while(1){
  7.         int x;
  8.         std::cin >> x;
  9.         if(x > 0) student[n++] = x;
  10.         else break;
  11.     }  
  12. }

  13. /*求平均成绩的函数,函数返回值返回平均成绩*/
  14. float average(int arr[], int n){
  15.     int res = 0;
  16.     for(size_t i = 0; i < n; i++){
  17.         res += arr[i];
  18.     }
  19.     return (float)res/n;
  20. }

  21. /*编写函数统计成绩低于平均分的学生人数的百分比,并返回 */
  22. float fail_ratio(int arr[], int n, float score){
  23.     int res = 0;
  24.     for(size_t i = 0; i < n; i++){
  25.         if(arr[i] < score){
  26.             res++;
  27.         }
  28.     }
  29.     return ((float)res/n)*100;
  30. }

  31. int main()
  32. {
  33.     input(); // 调用函数
  34.     std::cout << "成绩低于平均分的学生人数的百分比:" << std::setprecision(4) << fail_ratio(student, n, average(student, n)) << "%" << std::endl; // 调用函数
  35.     return 0;
  36. }
复制代码
Python 代码:
  1. student = []

  2. def inputVal():
  3.     global student
  4.     for i in range(30):
  5.         x = int(input())
  6.         if x > 0: student.append(x)
  7.         else: break

  8. average = lambda arr: sum(arr)/len(arr) if len(arr) else 0

  9. fail_ratio = lambda arr, score: (len([i for i in arr if i < score])/len(arr))*100 if len(arr) else 0

  10. if __name__ == "__main__":
  11.     inputVal()
  12.     print(f"成绩低于平均分的学生人数的百分比:{fail_ratio(student, average(student)):.2f}%")
复制代码

最佳答案

查看完整内容

C 代码:C++ 代码:Python 代码:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-11-22 12:07:55 | 显示全部楼层    本楼为最佳答案   
C 代码:
  1. #include <stdio.h>

  2. int student[30], n = 0;

  3. /*读入班级成绩,输入某班学生某门课的成绩,当输入为负数时,提示输入结束。*/
  4. void input(){
  5.     while(1){
  6.         int x;
  7.         scanf("%d", &x);
  8.         if(x > 0) student[n++] = x;
  9.         else break;
  10.     }  
  11. }

  12. /*求平均成绩的函数,函数返回值返回平均成绩*/
  13. float average(int arr[], int n){
  14.     int res = 0;
  15.     for(size_t i = 0; i < n; i++){
  16.         res += arr[i];
  17.     }
  18.     return (float)res/n;
  19. }

  20. /*编写函数统计成绩低于平均分的学生人数的百分比,并返回 */
  21. float fail_ratio(int arr[], int n, float score){
  22.     int res = 0;
  23.     for(size_t i = 0; i < n; i++){
  24.         if(arr[i] < score){
  25.             res++;
  26.         }
  27.     }
  28.     return ((float)res/n)*100;
  29. }

  30. int main()
  31. {
  32.     input(); // 调用函数
  33.     printf("成绩低于平均分的学生人数的百分比:%.2f%%", fail_ratio(student, n, average(student, n))); // 调用函数
  34.     return 0;
  35. }
复制代码
C++ 代码:
  1. #include <iostream>
  2. #include <iomanip>

  3. int student[30], n = 0;

  4. /*读入班级成绩,输入某班学生某门课的成绩,当输入为负数时,提示输入结束。*/
  5. void input(){
  6.     while(1){
  7.         int x;
  8.         std::cin >> x;
  9.         if(x > 0) student[n++] = x;
  10.         else break;
  11.     }  
  12. }

  13. /*求平均成绩的函数,函数返回值返回平均成绩*/
  14. float average(int arr[], int n){
  15.     int res = 0;
  16.     for(size_t i = 0; i < n; i++){
  17.         res += arr[i];
  18.     }
  19.     return (float)res/n;
  20. }

  21. /*编写函数统计成绩低于平均分的学生人数的百分比,并返回 */
  22. float fail_ratio(int arr[], int n, float score){
  23.     int res = 0;
  24.     for(size_t i = 0; i < n; i++){
  25.         if(arr[i] < score){
  26.             res++;
  27.         }
  28.     }
  29.     return ((float)res/n)*100;
  30. }

  31. int main()
  32. {
  33.     input(); // 调用函数
  34.     std::cout << "成绩低于平均分的学生人数的百分比:" << std::setprecision(4) << fail_ratio(student, n, average(student, n)) << "%" << std::endl; // 调用函数
  35.     return 0;
  36. }
复制代码
Python 代码:
  1. student = []

  2. def inputVal():
  3.     global student
  4.     for i in range(30):
  5.         x = int(input())
  6.         if x > 0: student.append(x)
  7.         else: break

  8. average = lambda arr: sum(arr)/len(arr) if len(arr) else 0

  9. fail_ratio = lambda arr, score: (len([i for i in arr if i < score])/len(arr))*100 if len(arr) else 0

  10. if __name__ == "__main__":
  11.     inputVal()
  12.     print(f"成绩低于平均分的学生人数的百分比:{fail_ratio(student, average(student)):.2f}%")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-11-22 12:19:21 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-11-22 19:20:18 | 显示全部楼层
你至少要说明是C语言还是C++
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 15:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表