#include
#include
#include
struct Student
{
int age;
char name[100];
float score;
};
void Ininformation(int * IP_len, struct Student * IP_arr)
{
int i;
for (i = 0; i < *IP_len; ++i)
{
printf("请输入%d个学生信息: \n", *IP_len);
printf("请输入第%d个学生信息\n", i + 1);
printf("年龄 = ");
scanf_s("%d", &IP_arr[i].age);
printf("分数 = ");
scanf_s("%f", &IP_arr[i].score);
printf("姓名 = ");
scanf_s("%s", IP_arr[i].name);
}
}
void Sortinformation(int * SP_len, struct Student * SP_arr)
{
int i, j;
struct Student t;
for (i = 0; i < *SP_len; ++i)
{
for (j = 0; j
{
if (SP_arr[j].score > SP_arr[j + 1].score)
{
t = SP_arr[j];
SP_arr[j] = SP_arr[j + 1];
SP_arr[j + 1] = t;
}
}
}
}
void Outinformation(int * OP_len, struct Student * OP_arr)
{
int i;
for (i = 0; i < *OP_len; ++i)
{
printf("第%d个学生的信息是:\n", i + 1);
printf("年龄 = %d\n", OP_arr[i].age);
printf("姓名 = %s\n", OP_arr[i].name);
printf("分数 = %f\n", OP_arr[i].score);
printf("\n\n");
}
}
int main(void)
{
int len;
struct Student * p_arr;
printf("请输入总共有几个学生:\n");
printf("人数 = ");
scanf_s("%d", &len);
p_arr = (struct Student *)malloc(len * sizeof(struct Student));
Ininformation(&len, p_arr);
Sortinformation(&len, p_arr);
Outinformation(&len, p_arr);
system("pause");
return 0;
}
存在错误,但是编译可以通过,求大神帮看下,谢谢。