函数,数组的排列问题
请教高手一道题目.一个数组怎样把最大数字的放在中间,最小的放在第一位?
比如a[7]={0,1,2,5,7,8,9 }
怎样把它变成{1,2,5,9,7,8,0}
把最大的9放在中间,就是把9和5的位置调换一下,
把最小0放到最后一位.
用以下两个函数写
void large_move
void small_move
凤凰涅磐,浴火重生!
#include"stdio.h" #define N 7 int b,temp,i,ln; main() {int a[N]={0,1,2,5,7,8,9}; large_move(a); small_move(a); output(a); getch(); } large_move(int a[]) { b=a[0]; for(i=1;i<N;i++) if(a[i]>b) {b=a[i];ln=i;} temp=a[(N-1)/2]; a[(N-1)/2]=b; a[ln]=temp; } small_move(int a[]) { b=a[0]; ln=0; for(i=1;i<N;i++) if(a[i]<b) {b=a[i];ln=i;} temp=a[N-1]; a[N-1]=b; a[ln]=temp; } output(int a[]) {for(i=0;i<N;i++) printf("%d ",a[i]); }