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 防止越界和重复交换

相关文章
|
7月前
|
存储 C语言
C语言第二十九弹---浮点数在内存中的存储
C语言第二十九弹---浮点数在内存中的存储
|
存储 C语言
找到所有数组中消失的数(C语言详解)
找到所有数组中消失的数(C语言详解)
71 0
|
6月前
|
C语言
C语言——oj刷题——调整数组使奇数全部都位于偶数前面
C语言——oj刷题——调整数组使奇数全部都位于偶数前面
39 1
|
7月前
|
存储 人工智能 小程序
C语言第二十八弹---整数在内存中的存储
C语言第二十八弹---整数在内存中的存储
|
7月前
|
C语言
C语言第四十六弹---最快方法找到杨氏矩阵中的数下标
C语言第四十六弹---最快方法找到杨氏矩阵中的数下标
|
C语言
C语言:调整数组使奇数全部都位于偶数前面
题目: 输入一个整数数组,实现一个函数, 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, 所有偶数位于数组的后半部分。 (奇数在数组前面,偶数在数组后面)
121 0
|
C语言
【C语言】调整奇数偶数顺序
输入一个整数数组,实现一个函数, 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, 所有偶数位于数组的后半部分。
【C语言】调整奇数偶数顺序

热门文章

最新文章