用现有的代码 加上什么代码 可实现成绩排序

#include<stdio.h>
#include<string.h>
#include<malloc.h>
struct student
{
int num;
char name[20];
float score;
};
int main(void)
{
int len;
struct student *pArr;
int i;
printf("人数:len=") ;
scanf("%d",&len) ;
pArr=(struct student *)malloc(len *sizeof(struct student));
for(i=0;i<len;++i)
{
printf("\n请输入第%d个同学信息:",i+1);
printf("\nnum=");
scanf("%d",&pArr[i].name);
printf("\nscore=");
scanf("%f",&pArr[i].score);
}
for(i=0;i<len;++i)
{
printf("\n输出第%d个学生的信息:",i+1);
printf("\nnum=%d",pArr[i].num);
printf("\nname=%s",pArr[i].name);
printf("\nscore=%f",pArr[i].score);
}
return 0;
}

img

#include<stdio.h>
#include<string.h>
#include<malloc.h>
struct student
{
    int num;
    char name[20];
    float score;
};
void sort (struct student t[],int n)
{
    int i,j;
    for(i=0; i<n-1; i++)
        for(j=0; j<n-1-i; j++)
            if(t[j].score<t[j+1].score)
            {
                struct student tem=t[j];
                t[j]=t[j+1];
                t[j+1]=tem;
            }
}
int main(void)
{
    int len;
    struct student *pArr;
    int i;
    printf("人数:len=") ;
    scanf("%d",&len) ;
    pArr=(struct student *)malloc(len *sizeof(struct student));
    for(i=0; i<len; i++)
    {
        printf("\n请输入第%d个同学信息:",i+1);
        printf("\nnum=");
        scanf("%d",&pArr[i].num);
        printf("\nscore=");
        scanf("%f",&pArr[i].score);
    }
    sort(pArr,len);
    for(i=0; i<len; i++)
    {
        printf("\n输出第%d个学生的信息:",i+1);
        printf("\nnum=%d",pArr[i].num);
        //printf("\nname=%s",pArr[i].name);
        printf("\nscore=%.2f",pArr[i].score);
    }
    return 0;
}

加上一个排序算法就可以实现。。。还有用了动态申请内存malloc,就需要free