void print(struct student *);
void input(struct student *);
struct student
{
int num;
char name[20];
int score[3];
}stu[10];
struct student *p;
void main()
{
p = stu;
input(p);
print(p);
system("pause");
}
void input(struct student *p)
{
int i = 0, j;
for(p = stu; p < stu + 2; p++, i++)
{
printf("请输入第%d个人的学号:", i + 1);
scanf("%d",&p->num);
printf("请输入第%d个人的姓名:", i + 1);
scanf("%s",&p->name);
for(j = 0; j < 3; j++)
{
printf("请输入他第%d门课的成绩:", j + 1);
scanf("%d",&p->score[j]);
}
}
p = stu;
}
void print(struct student *p)
{
int num, j;
float avg, sum = 0;
struct student *q;
num = p->score[0];
for(q = p; q < p + 2; q++)
{
for(j = 0; j < 3; j++)
{
if(q->score[j] > num)
num = q->score[j];
sum += q->score[j];
}
}
avg = sum / 3 * 2;
printf("%f\t%d\n", avg, num); //找出最大的一个然后比较,找到最大的那个所在的哪一个stu[i],然后输出这个组的所有数据就搞定···
for(q = p; q < p + 2; q++)
{
for(j = 0; j < 3; j++)
if(q->score[j] == num)
{
printf("%d\t%s\n",q->num, q->name);
for(j = 0; j < 3; j++)
printf("%d\t",q->score[j]);
printf("\n");
break;
}
}
}