# include
# include
struct student
{
int age;
float score;
char name[100];
};
void input(struct student *, int);
void output(struct student *, int);
void sort(struct student *, int);
int main(void)
{
int len;
struct student * pArr;
printf("请输入学生的个数: ");
scanf("%d", &len);
pArr = (struct student *)malloc(len * sizeof(struct student));
input(pArr, len);
printf("\n\n");
sort(pArr, len);
output(pArr, len);
return 0;
}
void input(struct student * a, int len)
{
int i;
for (i=0; i<=len-1; ++i)
{
printf("请输入第%d个学生的信息:\n", i+1);
printf("age = ");
scanf("%d", &a[i].age);
printf("score = ");
scanf("%f", &a[i].score);
printf("name = ");
scanf("%s", a[i].name);
}
}
void output(struct student * a, int len)
{
int i;
printf("您输入的学生信息如下:\n");
for (i=0; i<=len-1; ++i)
printf("age = %d score = %f name = %s\n", a[i].age, a[i].score, a[i].name);
}
void sort(struct student * a, int len)
{
int i, j;
struct student t;
for (i=0; i<=len-1; ++i)
{
for (j=0; j<=len-1-i; ++j)
{
if (a[j].score > a[j+1].score)
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
}
输出后为什么排在第一个的是乱码啊?