怎么样在这个函数中实现平均分每门课的计算
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;
}