#include
#define max 5 /*设定要输入成绩的学生个数*/
double zpj; /*总平均值*/
struct student /*结构体*/
{
int num;
char name[10];
int score1;
int score2;
int score3;
double pj;
};
struct student stu[max],temp;
void Input() /*输入函数*/
{ int i;
for(i=0;i
scanf("%d",&stu[i].num);
printf("enter name");
scanf("%s",&stu[i].name);
printf("enter score1");
scanf("%d",&stu[i].score1);
printf("enter score2");
scanf("%d",&stu[i].score2);
printf("enter score3");
scanf("%d",&stu[i].score3);
}
}
average() /*求平均值函数*/
{int i;
for(i=0;i<5;i++)
{stu[i].pj=stu[i].score1+stu[i].score1+stu[i].score3;
zpj+=stu[i].pj;
}
for(i=0;i<5;i++)
stu[i].pj/=3;
zpj/=max;
}
MAX() /*找出最高平均值的学生的函数*/
{int i,j;
temp=stu[0];
for(i=0;i
}
output() /*输出函数*/
{int i;
for(i=0;i
stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].pj);
printf("总平晌陵均分=%f\n\n",zpj);
printf("平均分最高的学生\nnum=%d\n name=%s\n score1=%d\n score2=%d\n score3=%d\n aver=%f\n",
temp.num,temp.name,temp.score1,temp.score2,temp.score3,temp.pj);
}
void main() /*主函数*/
{
Input();
average();
MAX();
output();
}
自己写的 符合你的要求
不足之处还请指教
#include
#include
#define N 3
struct student
{int number;
double score;}a[N]={{20101,96.7},{20102,85.6},{20103,99.5}};
void main()
{
void fun(struct student *b);
struct student *p;
printf("The number and score\n");
for(p=a;p {printf("%d,%lf\n",p->number,p->score);}
fun(a);
}
void fun(struct student *b)
{
FILE *fp;
int j,i;
struct student *p;
struct student t;
printf("The large-low score\n");
for(j=0;j<2;j++)
{ for(i=0;i<2-j;i++)
if(b[i].score {t=b[i];
b[i]=b[i+1];
b[i+1]=t;}}
for(p=b;p {printf("%d,%lf\n",p->number,p->score);}
if((fp=fopen("filename","w"))==NULL)
{printf("cannot open file\n");
return;
}
for (j=0; j
if(fwrite(&a[j], sizeof(struct student),1, fp)!=1)
{ printf("file write error\n");
return;}
fputs("\n",fp);}
fclose(fp);
}
改一陵烂改就中尺行,仅卖汪高作个参考
个人