指针,排序学生成绩
排学生成绩,怎么出错了呢?#include <stdio.h>
typedef struct{
int num; //学号
int score; //分数
}STU;
#define NUM 2
void input(STU s[]); //输入函数
void output(STU s[]); //输出函数
void sort(STU s[]); //选择函数
int main()
{
STU s[NUM];
input(s);
output(s);
sort(s);
output(s);
return 0;
}
void input(STU s[])
{
int i;
STU* p=s;
for(i=0;i<NUM;i++){
printf("Enter num & score:");
scanf("%d%d",&p->num,&p->score);
}
}
void output(STU s[])
{
int i;
STU* p=s;
for(i=0;i<NUM;i++){
printf("num=%d\tscore=%d\n",p->num,p->score);
}
}
void sort(STU s[])
{
int i,j;
STU temp;
STU* p=s;
for(i=0;i<NUM-1;i++)
for(j=NUM-1;j>i;j--){
if(p->score>((p-1)->score)){
temp=*p;
*p=*(p-1);
*(p-1)=temp;
}
}
}