#include <stdio.h>
void Swap(int* a, int* b) //交换数值
{
int t = *a;
*a = *b;
*b = t;
}
void Sort(int* p, int n)
{
int i, j;
for (i = 0, j = n - 1; i < j; i++, j--)
{
while (p[i] % 2 == 1 && i < j) //i<j为寻找的充分条件,不可缺少!
i++; //往后找偶数
while (p[j] % 2 == 0 && i < j)
j--; //从后往前找奇数
Swap(p + i, p + j); //找到第一个偶数与第一个奇数时交换位置
}
}
void Input(int* p, int n) //数组输入
{
for (int i = 0; i < n; i++)
{
scanf("%d", p + i);
}
}
void printArray(int* p, int n) //打印数组
{
for (int i = 0; i < n; i++)
printf("%d ", p[i]);
}
int main()
{
int a[100], n;
scanf("%d", &n);
Input(a, n);
Sort(a, n);
printArray(a, n);
return 0;
}
将数组中奇数放在前面,偶数放在后面
猜你喜欢
转载自blog.csdn.net/Genius_bin/article/details/112188622
今日推荐
周排行