关于#c语言#的问题:怎么样在这个函数中实现平均分每门课的计算

怎么样在这个函数中实现平均分每门课的计算


struct Student
{
 int num;
 char name[20];
 char sex[5];
 float score[5];
 float average;
}stu [15];
float aver;
void input()
{int i,j;
float sum;
for(i=0;i<10;i++)
{
 printf("输入第%d个学生的信息:\n",i+1);
 sum=0;
 scanf("%d%*c",&stu[i].num);
 gets(stu[i].name);
 gets(stu[i].sex);
 for(j=0;j<5;j++)
 {
  scanf("%f",&stu[i].score[j]);
  sum=sum+stu[i].score[j];
 }
 aver=aver+sum;
 stu[i].average=sum/5;
}
aver=aver/50;
}

float average[5]; //每门课的平均分
void input()
{
    int i,j;
    float sum;
    for(i=0;i<10;i++)
    {
        printf("输入第%d个学生的信息:\n",i+1);
        sum=0;
        scanf("%d%*c",&stu[i].num);
        gets(stu[i].name);
        gets(stu[i].sex);
        for(j=0;j<5;j++)
        {
            scanf("%f",&stu[i].score[j]);
            sum=sum+stu[i].score[j];
        }
        aver=aver+sum;
        stu[i].average=sum/5;
    }
    aver=aver/50;
    
    for(i=0;i<5;i++)
    { 
        sum=0;
        for(j=0;j<10;j++)
           sum=sum+stu[j].[i];
        average[i]=sum/10;
        pritnf("第i+1门课的平均分为:%f\n",i+1,average[i]);
    }
}

可以将求每门课程的平均分放到该函数的最后,求完每门课的平均分后可以直接将其输出或者将其用数组保存起来。

void input()
{
   int i,j;
   float sum,ave;
   for(i=0;i<10;i++)
  {
      printf("输入第%d个学生的信息:\n",i+1);
      sum=0;
      scanf("%d%*c",&stu[i].num);
      gets(stu[i].name);
      gets(stu[i].sex);
      for(j=0;j<5;j++)
     {
        scanf("%f",&stu[i].score[j]);
        sum=sum+stu[i].score[j];
     }
      aver=aver+sum;
      stu[i].average=sum/5;
  }
  aver=aver/50;
  for(i=0;i<5;i++)
  { 
    sum=0;
    for(j=0;j<15;j++)
       sum=sum+stu[j].[i];
    ave=sum/15;
    pritnf("第i+1门课的平均分为:%f\n",i+1,ave);
  }
}
for(i=0;i<5;i++)
{ 
    float sum=0;
    for(j=0;j<10;j++)
       sum=sum+stu[j].[i];
    ave=sum/10;
   printf("第%d门课的平均分为:%f\n",i+1,ave);
}

如有帮助,望采纳。

每门课的平均分要单独定义一个数组来记录才行

double avg[5] = {0};
for(int i=0;i<5;i++)
{
    for(int j=0;j<15;j++)
        avg[i] += stu[j].score[i];
    avg[i] /= 5;
}

如有帮助望采纳

#include <stdio.h>

#define N 1001
#define H 11 

//课程平均分 
int main()
{
    double a[N][H];
    int i, j, m, n;
    double p = 0,sum;
    
    scanf("%d%d",&m,&n);
    for (i = 0; i < m; i++)
        for (j = 0; j < n; j++)
            //输入各科成绩 
            scanf("%lf",&a[i][j]);
            
    for(j = 0; j < n; j++)
    {
        sum = 0; 
        for(i = 0; i < m; i++)
        {
            //求每列的和 
            sum += a[i][j];
        }
        //求每门课的平均分 
        p = 1.0 * sum / m;
        if(j == 0)
            printf("%.2f", p);
        else
            printf(" %.2f", p);
    }
    return 0;
}