简易版本,只输入一门成绩,并且从大到小的顺序进行排列.
#include<stdio.h>
#include<stdlib.h>
//#define scanf scanf_s
struct Student
{
int age;
float score;
char name[100];
};
//void output(struct Studet read)
//{
//
//};
int main()
{
/*动态构造,学生管理系统*/
int len;
struct Student *pArr;
struct Student t;
printf("请输入学生的个数!\nlen = ");
scanf("%d",&len);
pArr = (struct Student*)malloc(len * sizeof(struct Student));
for (int i = 0; i < len; i++)
{
printf("请输入第%d个学生的信息\n",i+1);
printf("age = ");
scanf("%d",&pArr[i].age );
printf("score = ");
scanf("%f", &pArr[i].score);
printf("name = ");
scanf("%s",pArr[i].name);
}
for (int i = 0; i < len-1; i++)
{
for (int j = 0; j < len-i-1; j++)
{
if (pArr[j].score<pArr[j+1].score)
{
t = pArr[j];
pArr[j] = pArr[j + 1];
pArr[j + 1] = t;
}
}
}
for (int read = 0; read < len; read++)
{//output(pArr[read]);
printf("名字:%s,成绩:%f,年龄:%d\n", pArr[read].name, pArr[read].score, pArr[read].age);
}
return 0;
}