#include <stdio.h>
#include <stdlib.h>
typedef struct tagStudent
{
char name[10];
int yw;
int sx;
int yy;
int sum;
}Student;
void show(int *n);
int main(int argc, const char * argv[])
{
int n;
printf("请输入学生总人数:");
scanf("%d",&n);
show(&n);
return 0;
}
void show(int *n)
{
Student *p=malloc(sizeof(Student));
for (int i=0;i<*n ; i++)
{
printf("请输入第%d位同学的姓名:",i+1);
scanf("%s",p[i].name);
printf("请输入%s同学的yw成绩:",p[i].name);
scanf("%d",&p[i].yw);
printf("请输入%s同学的sx成绩:",p[i].name);
scanf("%d",&p[i].sx);
printf("请输入%s同学的yy成绩:",p[i].name);
scanf("%d",&p[i].yy);
p[i].sum=p[i].yw+p[i].sx+p[i].yy;
}
for (int i=0; i<*n-1; i++)
{
for (int j=i+1; j<*n; j++)
{
if (p[i].sum<p[j].sum)
{
Student t=p[i];
p[i]=p[j];
p[j]=t;
}
}
}
printf("姓名\t语文\t数学\t英语\t总分\n");
for (int i=0; i<*n; i++)
{
printf("%s\t",p[i].name);
printf("%d\t",p[i].yw);
printf("%d\t",p[i].sx);
printf("%d\t",p[i].yy);
printf("%d\n",p[i].sum);
}
}