设计一函数,函数功能实现将形参数组中元素的奇数位从小到大排序

设计一函数,函数功能实现将形参数组中元素的奇数位从小到大排序,要求使用C语言

void fun(int a[],int n)
{
    int i,j,t;
    for(i=0;i<n-1;i++)
        for(j=1;j<n-i-2;j+=2)
        {
            if(a[j] > a[j+2])
            {
                t = a[j];
                a[j] = a[j+2];
                a[j+2] = t;
            }
        }
}

 

用冒泡排序就可以,循环时i j都从奇数1开始,每次循环加2保证是奇数位,然后进行排序即可,这里的奇数位是按照数组下标的奇数遍历的

#include <stdio.h>
int fun (int a[],int n){
    int i,j,t;
    for(i=1;i<n;i=i+2){
        for(j=1;j<n-1;j=j+2){
            if(a[j]>a[j+2]){
                t=a[j];
                a[j]=a[j+2];
                a[j+2]=t;
            }
        }
    }

}
int main()
{ int i,a[5]={1,5,2,3,4};

  fun(a,5);
  for(i=0;i<5;i++){
        printf("%d ",a[i]);
  }

  return 0;
}