题解 | #争夺前五名#
争夺前五名
https://www.nowcoder.com/practice/cd052308a1c44a88ad00255f312c3e14
#include <stdio.h> #include <stdlib.h> //直接插入排序 void sort1(int arr[],int n) { int i,j; for(i=2;i<=n;i++) { if(arr[i]<arr[i-1]) continue; arr[0]=arr[i]; for(j=i-1;arr[0]>arr[j];j--) { arr[j+1]=arr[j]; }; arr[j+1]=arr[0]; } } //简单选择排序 void sort2(int arr[],int n) { for(int i=1;i<=n;i++) { int max=i; for(int j=i+1;j<=n;j++) { if(arr[max]<arr[j]) { max=j; } } int tmp=arr[i]; arr[i]=arr[max]; arr[max]=tmp; } } int main() { int arr[51]; int n; while(scanf("%d",&n)!=EOF) { for(int i=1;i<=n;i++) { scanf("%d",&arr[i]); } sort2(arr,n); for(int k=1;k<=5;k++) { printf("%d ",arr[k]); } } } // int sort(int* a, int* b) // { // return *b - *a; // } // int main() { // int n=0,k=0, i = 5; // scanf("%d", &n); // int* sore = (int*)malloc(sizeof(int) * n); // while (k<n && scanf("%d",&sore[k++]) != EOF); // qsort(sore, n, 4, sort); // for (int i = 0; i < 5; i++) printf("%d ", *(sore + i)); // free(sore); // return 0; // }