C语言顺序表:奇数放偶数前

举报
川川菜鸟 发表于 2021/10/16 01:08:01 2021/10/16
【摘要】 #include<stdio.h> #pragma warning(disable:4996) using namespace std; #define MAXSIZE 20 typed...
#include<stdio.h>

#pragma warning(disable:4996)
using namespace std;
#define  MAXSIZE  20
typedef  int  ElemType;
typedef  struct
{
    ElemType  data[MAXSIZE];//最长为20个
    int   len;
} SqList;//定义结构体变量
void move(SqList & sq)
{
    ElemType t;
    int i = 0, j = sq.len - 1;
    while (i <= j) {
        while (sq.data[i] % 2 == 0) i++;  //从左向右找到奇数sq.data [i]
        while (sq.data[j] % 2 == 1) j--;  //从右向左找到偶数sq. data [j]
        if (i < j) 
        {
            t = sq.data[i];//偶数用t暂代替
            sq.data[i] = sq.data[j];//把j放到i位置
            sq.data[j] = t;//t就放到j位置
            i++; j--;//i就增加一位,j就减少一位
        }
    }
}
int main()
{
    SqList  sqA;
    int i;
    printf("请输入顺序表A的元素:");
    for (i = 0; i < 10; i++)
    {
   
        printf("顺序表第%d个元素", i);
        scanf("%d", &sqA.data[i]);
    }
    sqA.len = 10;
    move(sqA);       //调用move完成移动
    printf("奇偶排序后顺序表A中的元素为:");
    for (i = 0; i < 10; i++)
        printf("% 5d", sqA.data[i]);
}



  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

文章来源: chuanchuan.blog.csdn.net,作者:川川菜鸟,版权归原作者所有,如需转载,请联系作者。

原文链接:chuanchuan.blog.csdn.net/article/details/115299013

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。