一道国二计算机题目

来源:互联网 发布:期货交易模拟软件 编辑:程序博客网 时间:2024/04/29 08:42

      23行到38行的代码很不理解。

      运行图片


#include <stdio.h>#define N 9void fun(int a[],int n){   int i,j,max,min,px,pn,t;   for(i=0; i<n-1; i+=2)   {      max = min = 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(void){   int b[N] = {9,1,4,2,3,6,5,8,7},i;   printf("\nThe original data :\n");   for(i=0; i<N; i++)      printf("%4d",b[i]);   printf("\n");   fun(b,N);   printf("\nThe data after moving :\n");   for(i=0; i<N; i++)      printf("%4d",b[i]);   printf("\n");}


1 0
原创粉丝点击