遇健 发表于 2021-11-22 12:07:54

求助

哪个大佬能帮我一下?
编写一程序实现以下功能: 分别定义以下函数:(1)读入班级成绩,输入某班学生某门课的成绩(最多不超过30人),当输入为负数时,提示输入结束。(2)求平均成绩的函数,函数返回值返回平均成绩,(4)编写函数统计成绩低于平均分的学生人数的百分比,并返回 ,(4)主函数中通过调用以上函数求解成绩低于平均分的学生人数的百分比。

傻眼貓咪 发表于 2021-11-22 12:07:55

C 代码:#include <stdio.h>

int student, n = 0;

/*读入班级成绩,输入某班学生某门课的成绩,当输入为负数时,提示输入结束。*/
void input(){
    while(1){
      int x;
      scanf("%d", &x);
      if(x > 0) student = x;
      else break;
    }
}

/*求平均成绩的函数,函数返回值返回平均成绩*/
float average(int arr[], int n){
    int res = 0;
    for(size_t i = 0; i < n; i++){
      res += arr;
    }
    return (float)res/n;
}

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

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

int student, n = 0;

/*读入班级成绩,输入某班学生某门课的成绩,当输入为负数时,提示输入结束。*/
void input(){
    while(1){
      int x;
      std::cin >> x;
      if(x > 0) student = x;
      else break;
    }
}

/*求平均成绩的函数,函数返回值返回平均成绩*/
float average(int arr[], int n){
    int res = 0;
    for(size_t i = 0; i < n; i++){
      res += arr;
    }
    return (float)res/n;
}

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

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

def inputVal():
    global student
    for i in range(30):
      x = int(input())
      if x > 0: student.append(x)
      else: break

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

fail_ratio = lambda arr, score: (len()/len(arr))*100 if len(arr) else 0

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

jhq999 发表于 2021-11-22 12:19:21

https://fishc.com.cn/forum.php?mod=viewthread&tid=199858&highlight=%B3%C9%BC%A8

小鱼儿mxkk 发表于 2021-11-22 19:20:18

你至少要说明是C语言还是C++
页: [1]
查看完整版本: 求助