#对成绩升降序排列(swich语句,结构体)
有没有大佬看看能不能改进的,谢谢了
#include<stdio.h>
struct student
{
char name[20];
float score;
};
int low(struct student stu[])
{
struct student t;
int i,j,k;
printf("原来的成绩顺序\n");
printf("姓名 成绩\n");
for(i=0;i<3;i++)
{
printf("%s %.2f\n",stu[i].name,stu[i].score);
}
for(i=0;i<3;i++)
{
k=i;
for(j=i+1;j<3;j++)
{
if(stu[k].score>stu[j].score)
k=j;
}
t=stu[k];
stu[k]=stu[i];
stu[i]=t;
}
printf("成绩排序后\n");
for(i=0;i<3;i++)
{
printf("%s %.2f\n",stu[i].name,stu[i].score);
}
}
int pro(struct student stu[])
{
struct student t;
int i,j,k;
printf("原来的成绩顺序\n");
printf("姓名 成绩\n");
for(i=0;i<3;i++)
{
printf("%s %.2f\n",stu[i].name,stu[i].score);
}
for(i=0;i<3;i++)
{
k=i;
for(j=i+1;j<3;j++)
{
if(stu[k].score<stu[j].score)
k=j;
}
t=stu[k];
stu[k]=stu[i];
stu[i]=t;
}
printf("成绩排序后\n");
for(i=0;i<3;i++)
{
printf("%s %.2f\n",stu[i].name,stu[i].score);
}
}
int main()
{
struct student stu[3]={{"张三",99.7},
{"李四",87.5,},
{"王五",98.6}};
struct student stu1[3]={{"张三",99.7},
{"李四",87.5,},
{"王五",98.6}};
int button;
printf("*******请输入你的选择*******\n");
printf("1.成绩升序排列\n2.成绩降序排列\n");
scanf("%d",&button);
switch(button)
{
case 1:{pro(stu);break;}
case 2:{low(stu);break;}
default :printf("输入错误\n");
}
}