任务描述
于龙在运动会上和多位女同学进行跳绳比赛,现在需要一个排名程序,先输入每位同学的成绩,再输出每位同学的成绩及排名。
输入格式:
若干个空格分隔的整数,代表每个人的成绩。人数最少1人最多不会超过1000人。
输出格式:
按行输出名次和成绩,之间用一个横线分隔,横线前后各一个空格,横线就是减号。
输入样例:
150 120 180 135 100
输出样例:
1 - 180
2 - 150
3 - 135
4 - 120
5 - 100
输入样例:
150 120 150 135 120
输出样例:
1 - 150
1 - 150
3 - 135
4 - 120
4 - 120
#include<stdio.h>
long long a[1010],x;
int k;
void quick_sort(long long a[],int l,int r)
{
if(l>=r)
return;
int mid=(l+r+1)/2;
int i=l-1,j=r+1;
while(i<j)
{
do i++;while(a[i]>a[mid]);
do j--;while(a[j]<a[mid]);
if(i<j)
{
int t=a[i];
a[i]=a[j];
a[j]=t;
}
}
quick_sort(a,l,i-1);quick_sort(a,i,r);
}
int main()
{
k=0;
while(~scanf("%lld",&x))
{
a[k++]=x;
}
quick_sort(a,0,k-1);
printf("%lld - %lld\n",1,a[0]);
int c=1;
for(int i=1;i<k;i++)
{
if(a[i]==a[i-1])
printf("%lld - %lld\n",c,a[i]);
else
{
c=i+1;
printf("%lld - %lld\n",c,a[i]);
}
}
}