#include<stdio.h>
#include<malloc.h>
struct student
{
int age;
float score;
char name[100];
};
void InputStudent(struct student *pArr,int len)
{
int i;
for(i=0; i<len; i++)
{
printf("请输入第%d个学生的信息:\n",i+1);
printf("name = ");
scanf("%s",pArr[i].name);//这里不能写成&pArr[i].name,因为name本身已经是数组首元素的地址
printf("age = ");
scanf("%d",&(pArr[i].age));
printf("score = ");
scanf("%f",&(pArr[i].score));
}
}
void Sort_Student(struct student *pArr,int len)
{
int i;
int j;
struct student st;
for(i=0; i<len-1; i++)
{
for(j=0; j<len-1-i; j++)
{
if(pArr[j].score < pArr[j+1].score)
{
st = pArr[j];
pArr[j] = pArr[j+1];
pArr[j+1] = st;
}
}
}
}
void OutputStudent(struct student *pArr,int len)
{
int i;
for(i=0; i<len; i++)
{
printf("第%d名学生的信息:",i+1);
printf("name = %s ",pArr[i].name);
printf("age = %d ",(pArr[i].age));
printf("score = %f\n",(pArr[i].score));
}
}
int main(void)
{
int len ;
struct student *st;
printf("请输入学生的个数:\n");
printf("len = ");
scanf("%d",&len);
st = (struct student *)malloc(len*sizeof(struct student));
//输入
InputStudent(st,len);
printf("\n按降序排序是:\n\n");
Sort_Student(st,len);
//输出
OutputStudent(st,len);
return 0;
}
郝斌的C语言基础 164 学生管理系统(输入,排序,输出)
最新推荐文章于 2022-06-14 13:43:00 发布