用c语言找出十门课的平均分?

如题所述

把问题说全了,找出所有五什么??

10个成绩我测试就不一一输入了,你自己写个循环输入,把两个常量分别改成10和5。

我这边测试就初值了3个学生5门课的数据。

另外,不明白你要哪组数据的方差,方差我预留了函数:

int getVariance(int *nums,int len);//获取一组数组的方差,nums:数组,len:数组长度

根据你自己需要自己调用。

代码如下:

#include<stdio.h>

#define SN 3//学生人数

#define CN 5//门课数量

float *getSAvg(int stu[][CN]);//学生平均分

float *getCAvg(int stu[][CN]);//每门课平均分

int *getMax(int stu[][CN]);

int getVariance(int *nums,int len);//获取一组数组的方差,nums:数组,len:数组长度

int main()

{

   int i,stu[SN][CN]={{99,91,92,93,72},{92,72,83,97,99},{81,82,95,93,89}};

   float *cAvgs=NULL,*sAvgs=NULL;

   int *inxs=NULL;

   sAvgs=getSAvg(stu);

   cAvgs=getCAvg(stu);

   printf("每个学生平均分分别为:\n");

   for(i=0;i<SN;i++)

      printf("%.1f ",sAvgs[i]);

   printf("\n\n每门课的平均分分别为:\n");

   for(i=0;i<CN;i++)

      printf("%.1f ",cAvgs[i]);

   printf("\n\n");

   inxs=getMax(stu);

   printf("最高分是第%d个学生第%d门课。分数为%d\n",inxs[0]+1,inxs[1]+1,stu[inxs[0]][inxs[1]]);

   return 0;


}

int getVariance(int *nums,int len)//获取一组数组的方差,nums:数组,len:数组长度

{

    int i;

    float sum,avg;

    sum=0;

    //------先求数据平均值

    for(i=0;i<len;i++)

        sum+=nums[i];

    avg=sum/len;

    //再求个数与平均值差的平方和

    sum=0;

    for(i=0;i<len;i++)

        sum+=(nums[i]-avg)*(nums[i]-avg);

    //再求平均数

    return sum/len;

}

int *getMax(int stu[][CN])

{

    static int inxs[2]={0,0};

    int i,j,max=stu[0][0];

    for(i=0;i<SN;i++)

        for(j=0;j<CN;j++)

            if(max<stu[i][j])

                max=stu[i][j],inxs[0]=i,inxs[1]=j;

    return inxs;

}

float *getCAvg(int stu[][CN])//每门课平均分

{

    static float cAvgs[CN];

    int i,j,sum;

    for(i=0;i<CN;i++)

    {

        sum=0;

        for(j=0;j<SN;j++)

            sum+=stu[j][i];

        cAvgs[i]=sum*1.0/SN;

    }

    return cAvgs;

}

float *getSAvg(int stu[][CN])//学生平均分

{

    static float sAvgs[SN];

    int i,j,sum;

    for(i=0;i<SN;i++)

    {

        sum=0;

        for(j=0;j<CN;j++)

            sum+=stu[i][j];

        sAvgs[i]=sum*1.0/CN;

    }

    return sAvgs;

}

温馨提示:答案为网友推荐,仅供参考
相似回答