冒泡排序结果我也不知道什么情况
# include<stdio.h>
# include<malloc.h>
# include<string.h>
struct student
{
char name[20];
int age;
float score;
};
void IntputStudent(struct student * pstu, int j)
{
printf("请输入第%d个学生的姓名:", j + 1);
scanf_s("%s", pstu[j].name, 20);
printf("请输入第%d个学生的年龄:", j + 1);
scanf_s("%d", &pstu[j].age);
printf("请输入第%d个学生的成绩:", j + 1);
scanf_s("%f", &pstu[j].score);
printf("\n");
printf("\n");
return;
}
void sort(struct student* pstu, int n)
{
int k, m;
struct student t;
for (k = 0; k < n-1; ++k)
{
for (m = 0; m < n-k-1 ; ++m)
{
if (pstu[m].score < pstu[m + 1].score)
{
t = pstu[m];
pstu[m] = pstu[m + 1];
pstu[m + 1] = t;
}
}
}
return;
}
void OutputStudent(struct student* pstu, int j)
{
printf("第%d学生的姓名:%s\n", j + 1,pstu[j].name);
printf("第%d学生的年龄:%d\n", j + 1,pstu[j].age);
printf("第%d学生的成绩:%.2f\n", j + 1,pstu[j].score);
printf("\n");
printf("\n");
}
int main(void)
{
int len;
printf("请输入学生个数:");
scanf_s("%d", &len);
printf("\n");
struct student* stu;
stu = (struct student*)malloc(len * sizeof(struct student));
int i = 0;
for (i = 0; i < len; ++i)
{
IntputStudent(&stu[i], i);
}
sort(stu, len);
for (i = 0; i < len; ++i)
{
OutputStudent(&stu[i], i);
}
return 0;
}