源程序如下:
#include<stdio.h>
typedef struct
{ int num;
char name[10];
float score[3];
double aver;
}student;
void inputs(student stu[])
{ int i,k;
for(i=0;i<2;i++)
{ printf(" 第%d個學生:",i+1);
scanf("%d%s",&stu[i].num,stu[i].name);/* 輸入學生學號、姓名*/
printf("輸入分數");
for(k=0;k<3;k++)
scanf("%f",&stu[i].score[k]); /*輸入學生三門課的分數*/
}
}
void average( student stu[]) /*求學生的平均分*/
{ int i,k;
for(i=0;i<2;i++)
{ float sum=0.0;
for(k=0;k<3;k++)
sum+=stu[i].score[k];
stu[i].aver=sum/3;
}
}
void Printf( student stu[])/*輸出學生信息*/
{ int i,k;
printf("輸出執行結果:\n");
for(i=0;i<2;i++)
{
printf("\t第%d個學生:\t學號:%d \t姓名:%s\t分數:",i+1,stu[i].num ,stu[i].name);
for(k=0;k<3;k++)
printf("%g ",stu[i].score[k]);
printf("\t平均分:%g",stu[i].aver );
printf("\n");
}
}
void Max( student stu[])
{int i;
int max=0;
for(i=1;i<2;i++)
if(stu[max].aver <stu[i].aver )
max=i;
printf("%g\n",stu[max].aver );
}
void main()
{
student stu[2];
printf("輸入數據:\n");
inputs(stu);
average(stu);
Printf(stu);
Max(stu);
}