输入10个学生5门课的成绩,分别用函数实现下列功能: ①计算每个学生平均分; ②计算每门课的平均分; ③找出所有50个分数中最高的分数所对应的学生和课程; ④计算平均分方差: 其中,为某一学生的平均

@[TOC]输入10个学生5门课的成绩,分别用函数实现下列功能:
①计算每个学生平均分;
②计算每门课的平均分;
③找出所有50个分数中最高的分数所对应的学生和课程;
④计算平均分方差:

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

代码:

#include <stdio.h>
int main(){
    int average1(int str1[][5],int m,int n);
    int average2(int str1[][5],int m,int n);
    int average3(int str1[][5],int m,int n);
    int average4(int str1[][5],int m,int n);
    int a[10][5]={{70,80,90,40,50},{60,70,80,30,50},{90,80,90,93,94},{100,80,96,95,94},{50,60,70,90,67},{71,83,90,40,50},{67,70,88,30,50},{90,86,90,93,94},{100,80,93,95,94},{50,60,50,90,67}};
    printf("每个学生的平均成绩\n");
    average1(a,10,5);
    printf("每门课的平均成绩\n");
    average2(a,10,5);
    average3(a,10,5);
    printf("平均成绩的方差\n");
    average4(a,10,5);
    return 0;}
int average1(int str1[][5],int m,int n){
    int i,j,sum=0,avg[50];
    for(i=0;i<m;i++)
    { for(j=0;j<n;j++)
      {sum+=str1[i][j];}
         avg[i]=sum/n;
        printf("%d\n",avg[i]);
        sum=0;
    }
    return 0;
        }
 int average2(int str1[][5],int m,int n)
{ int i,j,sum=0,avg2;
    for(j=0;j<n;j++)
    { for(i=0;i<m;i++)
    {sum+=str1[i][j];}
        avg2=sum/m;
        printf("%d\n",avg2);
        sum=0;
    }
    return 0;
}
int average3(int str1[][5],int m,int n)
{ int max=str1[0][0];
    int p,k,i,j;
    for(i=0;i<10;i++)
    {for(j=0;j<5;j++)
        {if(str1[i][j]>max)
          { max=str1[i][j];
            k=i+1;
            p=j+1;
               }
         }
   }
    printf("最高分对应学生和课程\n");
    printf("max=%d,k=%d,p=%d",max,k,p);
    return 0;}
int average4(int str1[][5],int m,int n)
{ int i,j,sum1=0,sum2=0,sum3=0;float avg4;int avg[50];
    for(i=0;i<m;i++)
    {for(j=0;j<n;j++)
    {sum1+=str1[i][j];}//每个学生的总成绩
        avg[i]=sum1/n; //每个学生的平均成绩
        sum3+=avg[i]; //每个学生的平均成绩的和
        sum2+=avg[i]*avg[i];}//每个学生平均成绩的平方和
      avg4=sum2/m-(sum3/m)*(sum3/m);//方差
    printf("%f\n",avg4);
    return 0;} 
  • 17
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值