C语言 · 集合运算
第二行有n个互不相同的用空格隔开的整数,表示集合A中的元素。
第三行为一个整数m,表示集合B中的元素个数。
第四行有m个互不相同的用空格隔开的整数,表示集合B中的元素。
集合中的所有元素均为int范围内的整数,n、m<=1000。
第二行按从小到大的顺序输出A、B并集中的所有元素。
第三行按从小到大的顺序输出B在A中的余集中的所有元素。
1 2 3 4 5
5
2 4 6 8 10
1 2 3 4 5 6 8 10
1 3 5
1 2 3 4
3
5 6 7
1 2 3 4
/*
B在A中的余集:表示A中有B中没有的元素。
*/
#include<stdio.h>
#include<string.h>
#define max 1000
int jiao[max]={},bing[max+max]={},yu[max]={},all[max+max]={};//分别表交集、并集、余集、和集
int lena,lenb;//a和b数组的长度
void MPup(int a[],int len){//冒泡升序
for(int i=; i<len-; i++){
for(int j=; j<len--i; j++){
if(a[j]>a[j+]){
int t = a[j];
a[j] = a[j+];
a[j+] = t;
}
}
}
}
void showjiao(int all[],int len){
int index=;//下标
for(int i=;i<len;i++){
if(all[i+] == all[i]){//如果当前遍历的元素和前一个元素相等
jiao[index++] = all[i];//存到bing中
}
}
for(int i=;i<index;i++){
printf("%d ",jiao[i]);
}
}
void showbing(int all[],int len){//求并集
int index=;//下标
bing[] = all[];
for(int i=;i<len;i++){
if(all[i] != all[i-]){//如果当前遍历的元素和前一个元素不相等
bing[index++] = all[i];//存到bing中
}
}
for(int i=;i<index;i++){
printf("%d ",bing[i]);
}
}
void showyu(int a[],int b[]){
int index=;//表索引
for(int i=;i<lena;i++)
{
int count=;
for(int j=;j<lenb;j++)
if(a[i]!=b[j])
count++;
if(count==lenb)
yu[index++]=a[i];
} for(int i=;i<index;i++){
printf("%d ",yu[i]);
}
}
int main(){
scanf("%d",&lena);
int a[lena];
for(int i=;i<lena;i++){
scanf("%d",&a[i]);
all[i]=a[i];
}
MPup(a,lena);//a排序
scanf("%d",&lenb);
int b[lenb];
for(int i=;i<lenb;i++){
scanf("%d",&b[i]);
all[lena+i]=b[i];
}
MPup(b,lenb);//b排序
MPup(all,lena+lenb);//和集排序
showjiao(all,lena+lenb);//求交集
printf("\n");
showbing(all,lena+lenb);//求并集
printf("\n");
showyu(a,b);//求余集
return ;
}
C语言 · 集合运算的更多相关文章
- R语言︱集合运算——小而美法则
		
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 集合运算的一般规则如下: union(x ...
 - 一般链表实现集合运算(C语言)
		
最近在学习数据结构,遇到以下问题: 假设集合A = (c, b, e, g, f, d),B = (a, b, n, f),利用一般线性链表实现集合运算(A-B)∪(B-A). 分析: 上面的问题只要 ...
 - 【Java EE 学习 28 上】【oracle学习第二天】【子查询】【集合运算】【几种数据库对象】
		
一.子查询 1.为什么要使用子查询:问题不能一步求解或者一个查询不能通过一步查询得到. 2.分类:单行子查询和多行子查询. 3.子查询的本质:一个查询中包含了另外一个或者多个查询. 4.使用子查询的规 ...
 - 详解SQL集合运算
		
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 ...
 - SQL集合运算参考及案例(一):列值分组累计求和
		
概述 目前企业应用系统使用的大多数据库都是关系型数据库,关系数据库依赖的理论就是针对集合运算的关系代数.关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式.不过我们在工作中发现,很多人 ...
 - 【SqlServer系列】集合运算
		
1 概述 已发布[SqlServer系列]文章如下: [SqlServer系列]SQLSERVER安装教程 [SqlServer系列]数据库三大范式 [SqlServer系列]表单查询 [SqlS ...
 - Oracle02——oracle分页、子查询、集合运算、处理数据、创建和管理表和其他数据库对象
		
作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select ...
 - SQL Fundamentals || 多表查询(内连接,外连接(LEFT|RIGHT|FULL OUTER JOIN),自身关联,ON,USING,集合运算UNION)
		
SQL Fundamentals || Oracle SQL语言 一.多表查询基本语法 在进行多表连接查询的时候,由于数据库内部的处理机制,会产生一些“无用”的数据,而这些数据就称为笛卡尔积. 多表查 ...
 - SQL进阶系列之7用SQL进行集合运算
		
写在前面 集合论是SQL语言的根基,因为这种特性,SQL也被称为面向集合语言 导入篇:集合运算的几个注意事项 注意事项1:SQL能操作具有重复行的集合(multiset.bag),可以通过可选项ALL ...
 
随机推荐
- Js实现动态添加删除Table行示例
			
<table cellpadding="0" cellspacing="0" border="1" style="margi ...
 - 64位平台C/C++开发注意事项
			
在http://www.viva64.com/en/l/上例出了28个在64位平台上使用C/C++开发的注意事项,对于进入64位时代的程序员应该去看看这28个事项,这些英文读物对于有C/C++功底的朋 ...
 - C语言的整型溢出问题
			
整型溢出有点老生常谈了,bla, bla, bla… 但似乎没有引起多少人的重视.整型溢出会有可能导致缓冲区溢出,缓冲区溢出会导致各种黑客攻击,比如最近OpenSSL的heartbleed事件,就是一 ...
 - 构建你的长寿命的API第1部分:规范驱动的API开发
			
构建你的长寿命的API第1部分:规范驱动的API开发 这篇文章是由MuleSoft的Mike Stowe在nginx.conf 2016公布的演示文稿改编的.第一部分重点是规范驱动的API开发. 第二 ...
 - Internet上的WWW服务与HTTP协议(非常非常不错的文档,推荐订阅)
			
Internet上的WWW服务与HTTP协议 兼容性----H1TP/1.1与HTTP/1.0后向兼容;运行1.1版本的web服务器可以与运行1.0版本的浏览器“对话”,运行1.1版本的浏览器也可以与 ...
 - Java 8 – Convert List to Map
			
Java 8 – Convert List to Map package com.mkyong.java8 public class Hosting { private int Id; private ...
 - 使用 sqlyog 导入导出数据显示 lost connection to mysql server during query
			
mysql中经常需要备份数据,在使用 sqlyog 进行备份数据库为转储文件,然后在其他数据库中导入发生 lost connection 经过查询大量资料是数据库配置的 max_allowed_pac ...
 - MySql(五):MySQL数据库安全管理
			
一.前言 对于任何一个企业来说,其数据库系统中所保存数据的安全性无疑是非常重要的,尤其是公司的有些商业数据,可能数据就是公司的根本. 失去了数据,可能就失去了一切 本章将针对mysql的安全相关内容进 ...
 - octave画心形曲线
			
octave是gnu出品和matlab兼容的科学计算软件,具有体积小,兼容性好,免费的优点. 心形曲线是根据函数:( x2 + y2 -1 )3 - x2y3=0 改编而成. clear all; c ...
 - DBUtils查找最大的ID总是返回0
			
1.实体: public class Order { private int id; private Date orderDate; public int getId() { return id; } ...