# include <stdio.h>
# include <stdlib.h>
int len,i;
struct Student * Stulist;
struct Student
{
char name[100];
int age;
double score;
};
void InputStudent (struct Student * Stulist,int len)
{
for(i=0;i<len;++i)
{
printf("请输入第%d个学生的信息:",i+1);
printf("依次输入学生姓名、年龄、成绩\n");
scanf("%s%d%lf",Stulist[i].name,&Stulist[i].age,&Stulist[i].score);
}
}
void OutputStudent(struct Student *Stulist,int len)
{
for(i=0;i<len;++i)
{
printf("第%d个学生的信息是:",i+1);
printf("学生姓名: %s 学生年龄: %d 学生成绩: %.1lf \n",Stulist[i].name,Stulist[i].age,Stulist[i].score);
}
}
void sort(struct Student * Stulist,int len)
{
int j,k;
for(j=0;j<len;++j)//按照成绩由高到低冒泡排序
{
for(k=0;k<len-1;++k)
{
if(Stulist[k+1].score>Stulist[k].score)
{
struct Student c;
c=Stulist[k];
Stulist[k]=Stulist[k+1];
Stulist[k+1]=c;
}
}
}
}
int main (void)
{
printf("请输入学生总人数len=");
scanf("%d",&len);
Stulist=(struct Student *)malloc(sizeof(struct Student )*len);//动态构造了一个一维数组,存放若干个学生信息
//这句话一定不要忘了写(sizeof(struct Student)*len)
InputStudent(Stulist,len);
sort(Stulist,len);
OutputStudent(Stulist,len);
system("pause");
return 0;
}
输出结果
请输入学生总人数len=5
请输入第1个学生的信息:依次输入学生姓名、年龄、成绩
Zoe
16
77
请输入第2个学生的信息:依次输入学生姓名、年龄、成绩
Mike
15
99
请输入第3个学生的信息:依次输入学生姓名、年龄、成绩
Mary
14
88
请输入第4个学生的信息:依次输入学生姓名、年龄、成绩
Jack
15
67
请输入第5个学生的信息:依次输入学生姓名、年龄、成绩
June
16
89
第1个学生的信息是:学生姓名: Mike 学生年龄: 15 学生成绩: 99.0
第2个学生的信息是:学生姓名: June 学生年龄: 16 学生成绩: 89.0
第3个学生的信息是:学生姓名: Mary 学生年龄: 14 学生成绩: 88.0
第4个学生的信息是:学生姓名: Zoe 学生年龄: 16 学生成绩: 77.0
第5个学生的信息是:学生姓名: Jack 学生年龄: 15 学生成绩: 67.0
Press any key to continue . . .
本文章使用limfx的vsocde插件快速发布