编辑代码

#include <stdio.h>
#include<malloc.h>
//结构体
struct Student
    {
        int nianji;
        float chengji;
        char name[100];
    };

int main () {
     int len;
     struct Student *pArr;
     struct Student t;
     int i,j;
//动态构建一维数组
     printf("请输入学生人数:\n");
     printf("len= ");
     scanf("%d",&len);
     pArr=(struct Student*)malloc(len*sizeof(struct Student));//构建一个动态存储类型为struct Student类型
//输入数据
    for(i=0;i<len;++i)
    {
        printf("请输入第%d个学生的信息: ",i+1);
        printf("年龄 = ");
        scanf("%d",&pArr[i].nianji);
        printf("成绩 = ");
        scanf("%f",&pArr[i].chengji);
        printf("name = ");
        scanf("%s",pArr[i].name);
    }
//以成绩为参照,对数据进行升序排列
    for(i=0;i<len-1;++i)
    {
        for(j=0;j<len-1-i;++j)
        {
            if(pArr[j].chengji > pArr[j+1].chengji)
            {
                t=pArr[j];
                pArr[j]=pArr[j+1];
                pArr[j+1]=t;
            }
        }
    }
//输出数据
    printf("学生的信息是:\n");
    for(i=0;i<len;++i)
    {
        printf("第%d个学生的信息是:\n",i+1);
        printf(" 年龄 = %d\n",pArr[i].nianji);
        printf(" 成绩 = %f \n",pArr[i].chengji);
        printf(" 名字 = %s \n",pArr[i].name);
        
        printf("\n \n");
    }

    return 0;
}