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://www.haodehen.cn/did238298