大神看一下 这个c程序 哪里错了

geshegentle 发布于 2012/12/30 19:06
阅读 138
收藏 0

l  有若干个学生,每个学生的数据包括学号、姓名、五门课的成绩,从键盘输入若干个学生数据,要求打印出五门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、五门课的成绩、平均分数)。

l  要求用一个input函数输入5个学生数据;

l  用一个average函数求总平均分;

l  用max函数找出最高分学生数据;

总平均分和最高分的学生的数据都在主函数中输出。

提示:定义结构体如下:

struct student {

   char  num[6];

   char name[10];

   float score[6];  /*  其中最后一个元素用来保存平均成绩  */

};





#include <stdio.h>
#define N 5
 void input(struct student stu[N]);
float average(struct student stu[N]);
int max(struct student stu[N]);
struct student
 {
 char num[6];
 char name[10];
  float score[6];  
 };
 struct student stu[N];
 void input(struct student stu[N])
 {  
 int i;
 for(i=0;i<N;i++)
    {
printf("学号:");
scanf("%s",stu[i].num);
printf("姓名:");
scanf("%s",stu[i].name);
printf("五门课的成绩:\n");
scanf("%f%f%f%f%f:",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2],&stu[i].score[3],&stu[i].score[4]);
   printf("\n");
     }
}
  float average(struct student stu[N])
  {
    int j,i;
float sum=0, ave;
 for(i=0;i<N;i++)
  {
for(j=0;j<5;j++)
{
sum+=stu[i].score[j];
}
stu[i].score[6]=sum/5;
printf("%d号学生的平均分是%f",i+1,stu[i].score[6]);
printf("\n");
 }
 int max(struct student stu[N])
  {
  int i,p;
  float max;
  max=stu[0].score[6];
   for(i=1;i<N;i+1)
    {
 if(max<stu[i].score[6])
    {
max=stu[i].score[6];
p=i;
}
     }
return p;
  }
   void main()
 {
    int i,p;
float ave;
input(stu);
ave=average(stu);
printf("五门课的平均分是%f\n",ave);
printf("\n");
p=max(stu);
printf("最高分的学生的信息:\n学号:%s\n姓名:%s\n",stu[p].num,stu[p].name);
    printf("五门的学科成绩\n"); 
    printf("%f%f%f%f%f\n",stu[p].score[0],stu[p].score[1],stu[p].score[2],stu[p].score[3],stu[p].score[4]);
    printf("平均分是%f\n",stu[p].score[6]);  
 }


加载中
返回顶部
顶部