标签:
Q:有n个学生,每个学生都有自己的档案,包括学号,名字,成绩,需要按成绩由大到小的顺序给这几个学生排序。
输入:n+1行,第1行输入学生人数,剩下n行分别输入每个学生的学号,姓名,成绩。
输出:将学生的信息按成绩由大到小输出。
S:
#include<stdio.h>
struct stu
{
int No;
char name[50];
double mark;
};
int main()
{
struct stu s[31],temp;
int n,i,j;
//freopen("read.in","r",stdin);
//freopen("write.out","w",stdout);
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%s%lf",&s[i].No,s[i].name,&s[i].mark);
}
for(i=0;i<n-1;i++)
{
for(j=i;j>=0&&s[j].mark<s[j+1].mark;j--)
{
temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
}
}
for(i=0;i<n;i++)
{
printf("%d,%s,%lf\n",s[i].No,s[i].name,s[i].mark);
}
return 0;
}
标签:
原文地址:http://www.cnblogs.com/LegendLa/p/4196712.html