大神,求帮忙。

作者在 2015-05-27 22:53:10 发布以下内容

要求用一个input函数输入5个学生数据;应一个average函数求平均分;用max函数求出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出,但是每次到第三个人都会出错。

#include<stdio.h>
struct rec
{
   int number;
   char name[26];
   float score[4];
};
void input(struct rec a[]);
float average(struct rec a[]);
int max(struct rec a[]);
int main()

   struct rec student[5];
   int i,m;
   float ave;
   input( student );
   ave=average( student );
   m=max( student );
   printf("%.2f\n",ave);
   printf("%d\n",student[m].number);
   printf("%s\n",student[m].name);
   for(i=0;i<3;i++)
      printf("%.2f\n",student[m].score[i]);
   printf("%.2f\n",student[m].score[3]);
   return 0;
}


void input(struct rec a[])
{
   int i,j;
   for(i=0;i<5;i++)
   {
       scanf("%d",&a[i].number);
  gets( a[i].name );
  for(j=0;j<3;j++)
     scanf("%f",&a[i].score[j]);
   }
}


float average(struct rec a[])
{
   int i,j;
   float s=0,sum;
   for(i=0;i<5;i++)
   {
  sum=0;
      for(j=0;j<3;j++)
 {
sum+=a[i].score[j];
s+=a[i].score[j];
 }
 a[i].score[3]=sum/3;
   }
   return s/15;
}


int max(struct rec a[])
{
   int i,j;
   float max;
   max=a[0].score[3];
   for(i=0;i<5;i++)
   {
      if(max>a[i].score[3])
 {
   max=a[i].score[3];
   j=i;
 }
   }
   return j;
}

360反馈意见截图164101179295103.png (上传于2015-05-27 22:53:10)
360反馈意见截图164101179295103.png


默认分类 | 阅读 1046 次
文章评论,共1条
hkcmd
2015-06-24 15:09
1
for(j=0;j<3;j++)
{
   scanf("%f",&a[i].score[j]);
}
游客请输入验证码
文章分类
文章归档