C语言编程关于10个学生的信息包括学号,姓名几三门课的成绩

输入10个学生的信息,每个学生的 信息包括学号、姓名、三门课的成绩,要求从键盘输入学生的数据用一个函数实现,输出成绩表(包括学号、姓名、三门课的成绩,)在用一个函数输出平均分在前3名的学生姓名及平均分。

#include "stdio.h"
#include "conio.h"
#include "math.h"
struct node
{int num;
char *name;
int a;
int b;
int c;
int d;};
typedef struct node AA;
shuchu(AA *p)
{int i;
printf("学号\t姓名\t语文\t数学\t英语\t平均分\n");
for(i=0;i<10;i++,p++)
{ printf("%d\t",p->num);
printf("%s\t",p->name);
printf("%d\t",p->a);
printf("%d\t",p->b);
printf("%d\t",p->c);
printf("%d\t",p->d); printf("\n");} }

paix(AA *p)
{int i,j;AA c;
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
if((p+i)->d<(p+j)->d) {c=p[i];p[i]=p[j];p[j]=c;}
printf("学号\t姓名\t语文\t数学\t英语\t平均分\n");
for(i=0;i<3;i++,p++)
{ printf("%d\t",p->num);
printf("%s\t",p->name);
printf("%d\t",p->a);
printf("%d\t",p->b);
printf("%d\t",p->c);
printf("%d\t",p->d);
printf("\n"); } }

main()
{AA p[10];int i,j;
for(i=0;i<10;i++)
{ printf("请输入学号");
scanf("%d",&p[i].num);
printf("请输入姓名");
scanf("%s",p[i].name);
printf("请输入语文");
scanf("%d",&p[i].a);
printf("请输入数学");
scanf("%d",&p[i].b);
printf("请输入英语");
scanf("%d",&p[i].c);
p[i].d=p[i].a+p[i].b+p[i].c;
p[i].d=p[i].d/3;}
shuchu(p);
paix(p);
getch();
}
很简单,自己要多写
不要总是靠别人
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-06-06
输入成绩到一个数组里,再对这个数组排序输出就可以了。。
第2个回答  2008-06-06
用指针结构吧