c语言把a所指向数组中的数据最初排列为:1,2,3,4,5,6,7,8,9.按以上规则移动数组中的数据后,数据的排列为:1,9,2,8,3,7,4,6,5
程序代码:
#include <stdio.h> void fun(int a[],int n) { int i,j,min,max,px,pn,t; for(i=0;i<n-1;i+=2) { min=max=a[i]; px=pn=i; for(j=i+1;j<n;j++) { if(max<a[j]) {max=a[j]; px=j;} if(min>a[j]) {min=a[j]; pn=j;} } if(pn!=i) {t=a[i]; a[i]=min; a[pn]=t; if(px==i) px=pn;} if(px!=i+1) {t=a[i+1]; a[i+1]=max; a[px]=t;} } } int main() { int a[9]={9,1,4,2,3,6,5,8,7},i; fun(a,9); for(i=0;i<9;i++) printf("%d ",a[i]); return 0; }
把a所指向数组中的数据最初排列为:1,2,3,4,5,6,7,8,9.按以上规则移动数组中的数据后,数据的排列为:1,9,2,8,3,7,4,6,5
请问大家图片高光的地方的那句代码怎么理解 看不懂了。