#include <stdio.h>
#include <malloc.h>
struct student
{
int age;
float score;
char name[20];
};
void h(int len, struct student* p)
{
int i;
for (i = 0; i < len; i++)
{
printf("第%d个学生的信息是:\n", i + 1);
printf("age = %d\n", p[i].age);
printf("score = %f\n", p[i].score);
printf("name = %s\n", p[i].name);
printf("\n");
}
}
void g(int len, struct student* p)
{
int i, j;
struct student t;
for (i = 0; i < len - 1; i++)
{
for (j = 0; j < len - 1 - i; j++)
{
if (p[j].score > p[j + 1].score)
{
t = p[j];
p[j] =p[j + 1];
p[j + 1] = t;
}
}
}
}
void f(int len, struct student* p)
{
int i;
for (i = 0; i < len; i++)
{
printf("请输入学生%d的信息:\n", i + 1);
printf("score = ");
scanf_s("%f", &p[i].score);
printf("age = ");
scanf_s("%d", &p[i].age);
printf("name = ");
scanf_s("%s",p[i].name);
}
printf("\n学生的信息是(以成绩升序排列);\n");
}
int main(void)
{
int len;
struct student* p;
printf("请输入学生个数:");
scanf_s("%d", &len);
p = (struct student*)malloc(len*sizeof(struct student));
f(len, p);
g(len, p);
h(len, p);
return 0;
}