C语言第四十四弹---调整奇偶数顺序

简介: C语言第四十四弹---调整奇偶数顺序

使用C语言实现调整奇偶数顺序

思路:通过循环分别找到奇数和偶数,并实现位置交换,需要进行多次交换,循环外层需要添加一个循环。

代码如下

#include <stdio.h>
void Swap_Parity(int arr[], int sz)
{
  int left = 0;
  int right = sz - 1;
  while (left < right)
  {
    //寻找偶数
    while (left < right)
    {
      if (arr[left] % 2 == 0)
      {
        break;//找到第一个偶数 停止该循环
      }
      else
      {
        left++;//未找到继续寻找
      }
    }
    //寻找奇数
    while (left < right)
    {
      if (arr[right] % 2 == 1)
      {
        break;//找到第一个奇数 停止该循环
      }
      else
      {
        right--;//未找到继续寻找
      }
    }
    //交换
    if (left < right)
    {
      int tmp = arr[left];
      arr[left] = arr[right];
      arr[right] = tmp;
    }
  }
}
int main()
{
  int arr[] = { 0,1,2,3,4,5,6,7,8,9 };
  int sz = sizeof(arr) / sizeof(arr[0]);
  Swap_Parity(arr, sz);
  for (int i = 0; i < sz; i++)//打印
  {
    printf("%d ", arr[i]);
  }
  return 0;
}

注意每次循环条件判断都必须控制left < right 防止越界和重复交换

相关文章
|
2天前
|
存储 C语言
C语言第二十九弹---浮点数在内存中的存储
C语言第二十九弹---浮点数在内存中的存储
|
2天前
|
存储 人工智能 小程序
C语言第二十八弹---整数在内存中的存储
C语言第二十八弹---整数在内存中的存储
|
2天前
|
C语言
C语言第四十六弹---最快方法找到杨氏矩阵中的数下标
C语言第四十六弹---最快方法找到杨氏矩阵中的数下标
|
2天前
|
C语言
C语言第四十弹---两个整数二进制位不同的个数
C语言第四十弹---两个整数二进制位不同的个数
|
2天前
|
C语言
C语言第四十五弹---判断字符串旋转结果
C语言第四十五弹---判断字符串旋转结果
|
5月前
|
C语言
C语言第十七弹--求100中9的个数
C语言第十七弹--求100中9的个数
|
5月前
|
C语言
C语言二十三弹---求第N项斐波那契数列的值
C语言二十三弹---求第N项斐波那契数列的值
|
5月前
|
C语言
C语言第三十弹---打印一个整数的每一位数
C语言第三十弹---打印一个整数的每一位数
|
5月前
|
C语言
第十四弹--打印1-100之间的素数
第十四弹--打印1-100之间的素数