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

来源:互联网 发布:苹果手机连点器软件 编辑:程序博客网 时间:2024/06/15 17:39

1、 计算每个学生平均分; 

2、 计算每科平均分 ;

3 、找出五十个分数中最高分,和对应的学生和课程;

4、求出平均分方差:σ=1/n∑xi2-(∑xi/n)2,xi为某一学生的平均分。

#include<stdio.h>#include<string.h>#define N 10float a_stu[N];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 main(){int str[10][5]={{87,88,92,67,78},{88,86,87,98,90},{76,75,65,65,78},{67,87,60,90,67},{77,78,85,64,56},{76,89,94,65,76},{78,75,64,67,77},{77,76,56,87,85},{84,67,78,76,89},{86,75,64,69,90}};int i,j;    printf("每个学生的平均成绩\n");    average1(str,10,5);     printf("每门课的平均成绩\n"); average2(str,10,5); average3(str,10,5); printf("某个学生的平均成绩的偏差\n"); average4(str,10,5);   return 0;}int average1(int str1[][5],int m,int n)//单个学生的平均成绩 {int i,j;float average1;for(i=0;i<m;i++){    float sum=0;  for(j=0;j<n;j++)  {  sum+=str1[i][j];      }    a_stu[i]=sum/n;printf("%.2f\n",a_stu[i]); }}int average2(int str1[][5],int m,int n)//单门课的平均成绩 {int i,j;float average2;for(j=0;j<n;j++){    float sum=0;  for(i=0;i<m;i++)  {  sum+=str1[i][j];      }    average2=sum/m;printf("%.2f\n",average2); }}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\n",max,k,p);} int average4(int str1[][5],int m,int n)//某个学生的平均偏差 {int i;    float sum1=0,sum2=0;float average4;for(i=0;i<m;i++){      sum1+=a_stu[i];  sum2+= a_stu[i]*a_stu[i];  average4=sum2/m-(sum1/m)*(sum1/m);}printf("%.2f\n",average4); }


0 0
原创粉丝点击