所有偶数放所有奇数前

举报
川川菜鸟 发表于 2021/10/16 00:08:45 2021/10/16
【摘要】 //群:970353786 #include <stdio.h> #include <malloc.h> #define Maxsize 100 typedef int ElemT...
//群: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]);

}

  
 
  • 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
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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