#include <stdio.h>
#include <malloc.h>
struct Student
{
int age;
float score;
char name[100];
};
int Input_Data(struct Student **, int);
int Output_Data(struct Student **, int);
int Sort_Data(struct Student **, int);
int main(void)
{
int Length = 0;
struct Student *pSt = NULL;
printf("请输入数据长度: \n");
scanf("%d", &Length);
printf("Length = %d", Length);
printf("\n");
pSt = (struct Student *)malloc(Length * sizeof(struct Student));
Input_Data(&pSt, Length);
Sort_Data(&pSt, Length);
printf("\n\n");
Output_Data(&pSt, Length);
return 0;
}
int Input_Data(struct Student ** pstu, int Len)
{
for (int i = 0; i < Len; i++)
{
printf("请输入第%d个学生信息: \n", i+1);
printf("age = ");
scanf("%d",&(*pstu)[i].age);
printf("score = ");
scanf("%f",&(*pstu)[i].score);
printf("name = ");
scanf("%s",(*pstu)[i].name);
}
return 0;
}
int Output_Data(struct Student ** stu1, int Len)
{
for (int i = 0; i < Len; i++)
{
printf("第%d个的学生信息是: \n", i+1);
printf("age = %d\n",(*stu1)[i].age);
printf("score = %f\n",(*stu1)[i].score);
printf("name = %s\n",(*stu1)[i].name);
}
return 0;
}
int Sort_Data(struct Student ** stu, int Len)
{
struct Student t;
for (int i = 0; i < Len - 1; i++)
{
for (int j = 0; j < Len - 1 - i; j++)
{
if((*stu)[j].score > (*stu)[j+1].score)
{
t = (*stu)[j+1];
(*stu)[j+1] = (*stu)[j];
(*stu)[j] = t;
}
}
}
return 0;
}
对于学生成绩排序的C语言的代码,记录一下怕自己忘了。