求助一道成绩排序题
请教一个问题,这是一道练习题,,大概的内容是输入30个学生的信息,里面包括ID、姓名和成绩,要求是把这30个学生的成绩以从大到小的顺序排下来,最后再算出平均的成绩输出出来。。。
我编完之后总是出错,,请大家帮忙看一下谢谢。。
(最好是能利用一下指针的方法,,,我指针没有学的太明白,,请详细的讲解一下。。谢谢)
程序代码:#include "stdio.h"
struct student
{
int id;
char name;
int score;
}
swap(int *a,int *b)
{
int t;
t=*a;*a=*b;*b=t;
}
void main()
{
int i,j,t,n=0;
struct student stu[30];
int (*p)[30];
printf("请输入学生的信息:\n");
for (i=0;i<30;i++)
scanf("%d%c%d",&stu[i].id,&stu[i].name,&stu[i].score);
(*p)[30]=stu[30];
for (i=0;i<29;i++)
{
for(j=0;j<29-i;j++)
{
if ((*p)[i]->.score<(*p)[i+1]->score)
swap((*p)[i],(*p)[i+1]);
}
}
printf ("排序后的成绩为:\n");
for (i=0;i<30;i++)
printf ("%d\t%c\t%d",(*p)[i]->id,(*p)[i]->name,(*p)[i]->score);
printf ("平均分数为:");
for (i=0;i<30;i++)
n=n+stu[i].score;
printf ("%d",n);
}









