设计一函数,函数功能实现将形参数组中元素的奇数位从小到大排序,要求使用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;
}