编写函数 function2,用于将某一整型数组中n(0<n<100)个数按先奇数后偶数的方式从 小到大顺序存放
供参考:
#include<stdio.h>
#define Max 100
void function2(int a[], int n)
{
int i, j, tmp;
for (i = 0; i < n - 1; i++)//冒泡排序
{
for (j = 0; j < n - 1 - i; j++)
{
if ((a[j] % 2 < a[j + 1] % 2) || //当前一个元素为偶数,后一个元素为奇数时
((a[j] % 2 == a[j + 1] % 2) && (a[j] > a[j + 1])))
// 前后两个元素同为奇数或偶数,并且前一个元素比后一个元素大时
{
tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
}
}
}
}
int main()
{
int a[] = { 10 ,2, 7, 9, 11, 5 ,4 ,3 ,6 ,8 ,20 }, n = 0, i;
n = sizeof(a) / sizeof(a[0]);
function2(a, n);
for (i = 0; i < n; i++)//遍历数组
printf("%d ", a[i]);
printf("\n");
return 0;
}
如果数组有0就不好处理了
void function2(int arr[],len)
{
int arr2[len];
int j=0,k=0;
for(int i=0;i<len;i++)
{
if(arr[i]%2==0)
{
arr2[j]=arr[i];
++j;
}
else
{
arr[k]=arr[i];
++k;
}
}
j=0;
for(;k<len;k++)
{
arr[k]=arr2[j];
}
}