所有偶数放所有奇数前

简介: 所有偶数放所有奇数前
//群:970353786
#include <stdio.h>
#include <malloc.h>
#define Maxsize 100
typedef int ElemType;
//第一步,定义一个顺序表
//写出标准结构体形式
typedef struct Sqlist
{
  ElemType data[Maxsize];
  int len;
};
//移动算法  想象一排数组形式的数字
void move(Sqlist &sq)
{
  ElemType t;
  int i = 0, j = sq.len - 1;
  while (i<j)
  {
    while (sq.data[i] % 2 == 1) i++;//奇数 向后
    while (sq.data[j] % 2 == 0) j--;//偶数 向前
    if(i<j) //只要两个还没相遇
    {
      t = sq.data[i];//得到的奇数
      sq.data[i] = sq.data[j];//偶数放到奇数位置
      sq.data[j] = t;//奇数放到偶数位置
      i++;//同步移动到下一个
      j--;
    }
  }
}
void main()
{
  Sqlist sqA;//生成结构体变量
  int i;
  int num;
  printf_s("请输入你要输入多少个数据:\n");
  scanf_s("%d", &num);
  for (i = 0; i < num; i++)
  {
    printf_s("请输入链表第%d个数据:", i);
    scanf_s("%d", &sqA.data[i]);
  }
  sqA.len = num;
  move(sqA);//调用move函数完成移动
  printf("sqa数据为:\n");
  for (i = 0; i < num; i++) 
    printf_s("%5d", sqA.data[i]);
}
相关文章
【剑指offer】-调整数组顺序使奇数位于偶数前面-13/67
【剑指offer】-调整数组顺序使奇数位于偶数前面-13/67
|
5月前
给定一个长度为n的数组,请将数组中元素按照奇偶性重新划分,所有奇数靠左边,所有偶数靠右边,然后分别对奇数、偶数部分进行排序
给定一个长度为n的数组,请将数组中元素按照奇偶性重新划分,所有奇数靠左边,所有偶数靠右边,然后分别对奇数、偶数部分进行排序
53 1
|
7天前
求0—7所能组成的奇数个数
【10月更文挑战第10天】求0—7所能组成的奇数个数。
12 2
|
5月前
【调整奇数偶数顺序】调整数组使奇数全部都位于偶数前面习题集讲解
【调整奇数偶数顺序】调整数组使奇数全部都位于偶数前面习题集讲解
46 1
|
5月前
求100以内偶数之和
求100以内偶数之和
75 0
|
算法
OJ题库:奇偶数排序(使奇数全部都位于偶数前面)
OJ题库:奇偶数排序(使奇数全部都位于偶数前面)
73 0
剑指offer 20. 调整数组顺序使奇数位于偶数前面
剑指offer 20. 调整数组顺序使奇数位于偶数前面
52 0
|
算法 容器
12.调整数组顺序,使得奇数在前,偶数在后
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
122 0
AcWing 32. 调整数组顺序使奇数位于偶数前面
AcWing 32. 调整数组顺序使奇数位于偶数前面
67 0
AcWing 32. 调整数组顺序使奇数位于偶数前面