#include <stdio.h>
#include <malloc.h>
struct student{ //定义一个数据类型struct student
int age;
char name[100];
float score;
};
//进行分数的排序
int sort( struct student *q,int len){
int i,j;
struct student t;
for(i=0;i<len-1;i++){
for(j=0;j<len-1-i;j++){
if(q[j].score>q[j+1].score){
t=q[j];
q[j]=q[j+1];
q[j+1]=t;
}
}
}
}
//输入学生的信息
int InputStudent(struct student *r,int len){
int i;
for(i=0;i<len;i++){
printf("请输入%d个学生的信息是",i+1);
printf("age= ");
scanf("%d",&r[i].age);
printf("name= ");
scanf("%s",r[i].name);
printf("score= " );
scanf("%f",&r[i].score);
}
}
//输出学生的信息
int OutputStudent(struct student *g,int len){
int i;
for(i=0;i<len;i++){
printf("请输入%d个学生的信息: ",i+1);
printf("\n");
printf("age=%d\n",g[i].age);
printf("name=%s\n",g[i].name);
printf("score=%f\n",g[i].score);
}
}
int main()
{
struct student *p; //定义一个struct student 类型的指针,存放学习信息类型
int len;
int i;
printf("请输入学生的人数: \n ");
printf("len= "); //malloc动态创建内存,需要确定内存长度
scanf("%d",&len);
p=(struct student *)malloc(len*sizeof(struct student)); //感觉就是创建了一个自己定义内存大小的数组
InputStudent(p,len);
sort(p,len);
OutputStudent(p,len);
}