#include<stdio.h>
#include<stdlib.h>
#define max 100
typedef struct {
int elem[max];
int length;
}List;
void UnionList();
void IntersectionList();
void setdifferenceList();
void DataSort(List &L, int n);
int main(){
UnionList();
IntersectionList();
setdifferenceList();
return 0;
}
//并集
void UnionList() {
int i, j, e;
List La, Lb;
printf("并集\n");
printf("请输入集合A,集合B元素的个数:\n");
scanf("%d %d", &La.length, &Lb.length);
printf("请输入集合A的元素:\n");
for (i = 0; i < La.length; i++){
scanf("%d", &La.elem[i]);
}
printf("请输入集合B的元素:\n");
for (i = 0; i < Lb.length; i++){
scanf("%d", &Lb.elem[i]);
}
for (i = 0; i<Lb.length; i++)
{
e = Lb.elem[i];
j = 0;
while ((j<La.length) && (La.elem[j] != e))
j++;
if (j == La.length){
La.elem[La.length] = e;
La.length++;
}
}
DataSort(La, La.length);
for (i = 0; i<La.length; i++) {
printf("%d ", La.elem[i]);
}
printf("\n");
}
//交集
void IntersectionList(){
int i, j, d = 0;
List La, Lb, Lc;
printf("交集\n");
printf("请输入集合A,集合B元素的个数:\n");
scanf("%d %d", &La.length, &Lb.length);
printf("请输入集合A的元素:\n");
for (i = 0; i < La.length; i++){
scanf("%d", &La.elem[i]);
}
printf("请输入集合B的元素:\n");
for (i = 0; i < Lb.length; i++){
scanf("%d", &Lb.elem[i]);
}
for (i = 0; i<La.length; i++) {
for (j = 0; j<Lb.length; j++){
if (La.elem[i] == Lb.elem[j]){
Lc.elem[d++] = La.elem[i];
break;
}
}
}
DataSort(Lc, d);
for (i = 0; i<d; i++) {
printf("%d ", Lc.elem[i]);
}
printf("\n");
}
//差集
void setdifferenceList() {
int i, j, d = 0, c;
List La, Lb, Lc;
printf("差集\n");
printf("请输入集合A,集合B元素的个数:\n");
scanf("%d %d", &La.length, &Lb.length);
printf("请输入集合A的元素:\n");
for (i = 0; i < La.length; i++){
scanf("%d", &La.elem[i]);
}
printf("请输入集合B的元素:\n");
for (i = 0; i < Lb.length; i++){
scanf("%d", &Lb.elem[i]);
}
for (i = 0; i<La.length; i++) {
c = 0;
for (j = 0; j<Lb.length; j++){
if (La.elem[i] != Lb.elem[j]){
c++;
}
}
if (c == Lb.length)
Lc.elem[d++] = La.elem[i];
}
DataSort(Lc, d);
for (i = 0; i<d; i++) {
printf("%d ", Lc.elem[i]);
}
printf("\n");
}
//排序
void DataSort(List &L, int n) {
int i, j, temp;
for (i = 0; i<n - 1; i++){
for (j = i + 1; j<n; j++){
if (L.elem[j]<L.elem[i]) {
temp = L.elem[j];
L.elem[j] = L.elem[i];
L.elem[i] = temp;
}
}
}
}