求助一道成绩排序题
请教一个问题,这是一道练习题,,大概的内容是输入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); }