#include <stdio.h> //冒泡排序 void sort(int a[],int n) { int i,j,temp; for(i=0;i<n-1;i++) { for(j=0;j<n-1-i;j++) { if(a[j]>a[j+1]) { temp = a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } } int find_max(int a[],int len) { int i; int maxindex=0; for(i=0;i<len;i++) { if(a[i]>a[maxindex]) { maxindex=i; } } return maxindex; } //二分查找 int search(int k,int a[],int len) { int flag=-1; int left = 0; int right = len-1; while(right>left) { int mid=(left+right)/2; if(a[mid]==k) { flag = mid; break; } else if(a[mid]>k) { right=mid-1; } else { left = mid+1; } } return flag; } int main(void) { int num[10]; int i,temp; for(i=0;i<10;i++) { scanf("%d",&num[i]); } /* 冒泡排序 sort(num,10); for(i=0;i<10;i++) { printf("%d\n",num[i]); } */ //选择排序 for(i=10-1; I> =0; i-- ) { TEMP = NUM [find_max (NUM, I + . 1 )]; NUM [find_max (NUM, I + . 1 )] = [I] NUM; NUM [I] = TEMP; } int K; Scanf ( " % D " , & K); int POS = Search (K, NUM, 10 ); IF (POS = -! . 1 ) { the printf ( " coordinates are:% D " , POS); } the else { the printf ( " not found "); } return 0; }