勇争前三
题目描述 pta迎新赛开始了,因为前三名同学有奖,所以大家都想得到前三名。从键盘输入若干个学生成绩(不超过100个),输出每组排在前3高的成绩。
输入格式:
一行,输入若干个学生成绩(整数表示,范围0~100),用空格分隔,以负数结尾(注意:结尾负数不是学生成绩)。
输出格式:
一行,输出成绩最高的前3个,用空格分隔,结尾没有空格,若不足三人的话,用字符#补上。
输入样例:
99 45 78 67 72 88 -1
输出样例:
99 88 78
代码
#include<stdio.h>
int main(void)
{
int a[101]={0};
int length=0;
//数据输入
for(int i=0;;i++){
int temp;
scanf("%d",&temp);
if(temp>0){
length++;
a[i]=temp;
}else{break;}
}
//冒泡排序
if(length>0){
for(int i=0;i<length;i++){
for(int j=0;j<length-1;j++){
int temp;
if(a[j]<a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
if(length>=3){printf("%d %d %d",a[0],a[1],a[2]);}
if(length==2){printf("%d %d #",a[0],a[1]);}
if(length==1){printf("%d # #",a[0]);}
}else{printf("# # #");}
return 0;
}

被折叠的 条评论
为什么被折叠?



