1150: 零起点学算法57——程序设计竞赛
Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: 1303 Accepted: 742
[ Submit ][ Status ][ Web Board ]
Description
每年5月份,省里都要举行程序设计竞赛。
为了让最优秀的学生去参加比赛,我们一般需要做一个选拔工作。
现在你来帮老师完成这个任务哦。
Input
多组测试数据,每组数据一行,该行先输入一个整数n ( n <= 30),表示参加选拔的同学人数。然后是n个整数表示选拔成绩。
Output
对于每组测试数据,请在一行从高到低输出他们的成绩。
Sample Input
4 2 6 7 1 3 4 10 9
Sample Output
7 6 2 1 10 9 4
Source
零起点学算法
1 #include<stdio.h>
2 int main(){
3 int n,a[ 50 ];
4 while (scanf( " %d " ,&n)!= EOF){
5 for ( int i= 0 ;i<n;i++ ){
6 scanf( " %d " ,& a[i]);
7 }
8
9 for ( int i= 0 ;i<n- 1 ;i++ ){
10 int k= i,t;
11 for ( int j=i+ 1 ;j<n;j++ )
12 if (a[k]< a[j])
13 k= j;
14 if (k!= i){
15 t= a[i];
16 a[i]= a[k];
17 a[k]= t;
18 }
19 }
20 for ( int i= 0 ;i<n- 1 ;i++ )
21 printf( " %d " ,a[i]);
22 printf( " %d\n " ,a[n- 1 ]);
23 }
24 return 0 ;
25 }
//选择排序法!!!
1 #include<stdio.h>
2 int main(){
3 int n,a[ 50 ];
4 while (scanf( " %d " ,&n)!= EOF){
5 for ( int i= 0 ;i<n;i++ )
6 scanf( " %d " ,& a[i]);
7
8 int t;
9 for ( int i= 1 ;i<n;i++ ){
10 for ( int j= 0 ;j<n-i;j++ ){
11 if (a[j]<a[j+ 1 ]){
12 t= a[j];
13 a[j]=a[j+ 1 ];
14 a[j+ 1 ]= t;
15 }
16 }
17 }
18
19 for ( int i= 0 ;i<n- 1 ;i++ ){
20 printf( " %d " ,a[i]);
21 }
22 printf( " %d\n " ,a[n- 1 ]);
23 }
24
25 return 0 ;
26 }
// 冒泡排序法
#include<stdio.h>
int main(){
int n,a[ 50 ];
while (scanf( " %d " ,&n)!= EOF){
for ( int i= 0 ;i<n;i++ )
scanf( " %d " ,& a[i]);
int t;
for ( int i= 1 ;i<n;i++ ){
int flag= 0 ;
for ( int j= 0 ;j<n-i;j++ ){
if (a[j]<a[j+ 1 ]){
t = a[j];
a[j] =a[j+ 1 ];
a[j + 1 ]= t;
flag = 1 ;
}
if (flag== 0 ) break ;
}
}
for ( int i= 0 ;i<n- 1 ;i++ ){
printf( " %d " ,a[i]);
}
printf( " %d\n " ,a[n- 1 ]);
}
return 0 ;
}
//冒泡排序法 (改进后的)
查看更多关于1150: 零起点学算法57——程序设计竞赛的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did238298