1.程序中另外定义一个结构体指针数组,在排序前,其中每一个数组元素依次指向学生成绩登记表(为结构体类型数组)中的各学生情况。
2.将冒泡排序的功能独立编写成一个函数
#include <stdio.h>
#define S 5
struct student
{
int num;
char name[10];
int grade;
};
void sort(struct *ptr,int n);
int main()
{
struct student stu[S],*ptr;
int i;
ptr=stu;
printf("Input the student's number,name and grade:\n");
for(i=0;i<S;i++)
{
printf("No.%d:",i+1);
scanf("%d%s%d",&stu[i].num,stu[i].name,&stu[i].grade);
}
sort(ptr,S);
printf("The students score from high to low:\n");
for(i=0;i<S;i++)
{
printf("%d %s %d",stu[i].num,stu[i].name,stu[i].grade);
}
return 0;
}
void sort(struct student *ptr,int n)
{
int t;
for(int i=1;i<n;i++)
for(int j=0;j<n-i;j++)
if(*(ptr+j)<*(ptr+j+1))
{
t=*(ptr+j);
*(ptr+j)=*(ptr+j+1);
*(ptr+j+1)=t;
}
}
请问如何更改?