c 哪里出错了?
#include <stdio.h>
typedef struct
{
char number[10];
char *name;
int scores[5];
int total;
}student;
void input(student *p)
{
int i;
printf("number,name:");
scanf("%s,%s",&(*p).number,&(*p).name);
for(i=0;i<5;i++)
{
printf("请输入第%d门课成绩:",i+1);
scanf("%d",&(*p).scores[i]);
}
}
void output(student *p)
{
int i;
printf("number:%s\n",(*p).number);
printf("name:%s\n",(*p).name);
for(i=0;i<5;i++)
printf("%5d",(*p).scores[i]);
}
void last(student *p)
{
int t=0,i;
for(i=0;i<5;i++)
{
t=t+(*p).scores[i];
}
(*p).total=t;
}
main()
{
int t=0,i,j,order[5],temp;
student std[5],*p;
p=std;
for(p=std,i=0;i<5;i++,p++)
{
input(p);
last(p);
}
for(i=0;i<4;i++)
{
order[i]=i;
for(j=1;j<5;j++)
{
if(std[order[i]].total<std[order[j]].total)
{
temp=order[i];
order[i]=order[j];
order[j]=temp;
}
}
}
for(i=0,p=std;i<5;i++,p++)
output(p);
}
输入5个学生的成绩,并计算总分
将总分排序后,按从大到小的顺序输出。帮我看看,总是运行不成功