7.14 输入10个学生5门课程的成绩,分别用函数实现下列功能

7.14 输入10个学生5门课程的成绩,分别用函数实现下列功能:

1.计算每个学生的平均分;

2.计算没门课的平均分;

3.找出所有50个分数中最高的分数所对应的学生的课程;

4.计算平均分方差:


其中,xi为某一学生的平均分。

个人代码如下:

#include <stdio.h>
#include  <math.h>
int main(int argc, const char * argv[]) {
    int sc[10][5];
    void input_score(int score[10][5]);      //声明输入函数
    void average_st(int score[10][5]);      //声明求学生成绩平均数函数
    void average_course(int score[10][5]); //声明求每门课的平均分函数
    void max_course(int score[10][5]);    //声明求最大数函数
    void vari_course(int score[10][5]);  //声明求方差函数
    
    input_score(sc);                    //调用输入函数
     average_st(sc);                   //调用求学生成绩平均数函数
    printf("\n");
    average_course(sc);                //调用求每门课的平均分函数
     printf("\n");
    max_course(sc);                  //调用求最大数函数
     printf("\n");
    vari_course(sc);                //调用求方差函数
    return 0;
}

// 输入函数
void input_score(int score[10][5])
{
    int i,j;
    for(i=0;i<10;i++)
    {
        printf("第%d个学生的成绩:\n",i+1);
        for(j=0;j<5;j++)
        {
            printf("成绩%d:",j+1);
            scanf("%d",&score[i][j]);
        }
        printf("\n");
    }
}

//求学生成绩平均数函数
void average_st(int score[10][5])
{
    int i,j;
    double sum;
    for(i=0;i<10;i++)
    {
        for(j=0,sum=0;j<5;j++)
             sum=sum+score[i][j];
        printf("第%d个学生的成绩平均数为:%lf\n",i+1,sum/5);
    }
}

//求每门课的平均分函数
void average_course(int score[10][5])
{
    int i,j;
    double sum;
    for(j=0;j<5;j++)
    {
        for(i=0,sum=0;i<10;i++)
            sum=sum+score[i][j];
        printf("第%d门课的平均数为:%lf\n",j+1,sum/10);
    }
}

//求最大数函数
void max_course(int score[10][5])
{
    int i,j,max=0,stu=0,cour=0;
    for(i=0;i<10;i++)
        for(j=0;j<5;j++)
       if(score[i][j]>max)
       {
           max=score[i][j];stu=i+1;cour=j+1;
       }
    printf("第%d个学生的第%d门课获得了%d的最高分\n",stu,cour,max);
}

//求平均分方差函数
void vari_course(int score[10][5])
{
    int i,j,sum;
    float average[10],var,x1=0,x2=0;
    for(i=0;i<10;i++)
    {
        for(j=0,sum=0;j<5;j++)
            sum=sum+score[i][j];
        average[i]=sum/5;
    }
    for(i=0;i<10;i++)
    {
        x1=x1+pow(average[i],2);
        x2=x2+average[i];
    }
    var=x1/10-pow(x2/10, 2);
    printf("方差为 %f\n", var);
}


  • 23
    点赞
  • 96
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值