个人的错题集 非原创
任务描述
于龙在运动会上和4位同学进行跳绳比赛,需要一个排名程序,先输入每位同学的成绩(跳绳计数),再输出每位同学的成绩及排名(成绩从高到低排列)。
输入格式:
五个空格分隔的整数,代表5个人的成绩。
输出格式:
按行输出名次与成绩,之间用一个横线分隔,横线前后各一个空格,横线就是减号。
输入样例:
150 120 180 135 100
输出样例:
1 - 180
2 - 150
3 - 135
4 - 120
5 - 100
输入样例:
180 120 120 180 120
输出样例:
1 - 180
1 - 180
3 - 120
3 - 120
3 - 120
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include<stdio.h>
int main()
{
int a[5],t,i,j;
for(i=0;i<5;i++){
scanf("%d",&a[i]);}
for(i=0;i<5;i++){
for(j=1;j<5;j++)
if(a[j]>a[j-1]){
t=a[j];
a[j]=a[j-1];
a[j-1]=t;
}
}
int k=1,p=2;
printf("%d - %d\n",k,a[0]);
for(i=1;i<5;i++){
if(a[i]==a[i-1]){
printf("%d - %d\n",k,a[i]);
p++;
}
else{
printf("%d - %d\n",p,a[i]);
k=p;
p++;
}
}
return 0;
}
错误的
#include<stdio.h>
int main(){
int a,b,c,d,e;
int f,n;
scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);
for(n=0;n<5;n++){
if(a<b){
f=a;a=b;b=f;}
if(b<c){
f=b;b=c;c=f;}
if(c<d){
f=c;c=d;d=f;}
if(d<e){
f=d;d=e;e=f;}
}
printf("1 - %d\n2 - %d\n3 - %d\n4 - %d\n5 - %d",a,b,c,d,e);
}*/