void jiaoji(char a[],char b[],int m,int n)
{
int k=0;
char c[100]={"0"};
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(a[i]==b[j]) c[k++]=a[i];
}
}
for(int i=0;i<strlen;i++)
{
printf("%c “,c[i]);
}
}
3.创建并集运算的函数;
(相同的创建一个新的数组c,首先将a数组中的所有元素放置到c数组中,然后通过循环查找相同原属剔除)在这里插入代码片
void bingji(char a[],char b[],int m,int n)
{
char c[100]={”\0"};
int k=0;
for(int i=0;i<m;i++)
{
c[i]=a[i];
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(b[i]==c[j]) break;
if(jm)
{
c[m+k]=b[i];
k++;
}
}
}
for(int i=0;i<strlen©;i++)
{
printf("%c “,c[i]);
}
}
最终在主函数中通过函数的调用实现集合的运算;
相关主函数代码:在这里插入代码片
int main()
{
printf(“注意:所有输入局限于数字0~9和其他非空格的字符\n”);
char a[100],b[100];
printf(“请输入不带空格的集合A的元素:”);
while(~scanf(”%s",a))
{
int m,n,h;
m=strlen(a);
printf(“请输入不带空格的集合B的元素:”);
scanf("%s",b);
n=strlen(b);
printf(“集合A和集合B的交集为:”);
jiaoji(a,b,m,n);
printf("\n");
printf(“集合A和集合B的并集为:”);
bingji(a,b,m,n);
printf("\n");
printf(“集合A和集合B的差集为:”);
chaji(a,b,m,n);
printf("\n");
printf(“输入1继续程序,输入0退出程序”);
scanf("%d",&h);
if(h1)
{
printf(“请输入不带空格的集合A的元素:”);
}
else break;
}
}
————————————————
版权声明:本文为优快云博主「weixin_44712472」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44712472/article/details/88083418
#include<stdio.h>
#define MAX 1000
int bubbleSort(int *A,int len)
{
int i,j,t;
for(i = 0;i < len-1;i++)
{
for(j = 0;j < len-i-1;j++)
{
if(A[j] > A[j+1])
{
t = A[j+1];
A[j+1] = A[j];
A[j] = t;
}
}
}
}
int unionSet(int *A,int *B,int lenA,int lenB)
{
int i,j;
int flag,index = lenB;
int *buffer = (int *)malloc(sizeof(int) * (lenA+lenB));
for(i = 0;i< lenA+lenB;i++)
{
buffer[i] = -1;
}
for(i = 0;i < lenB;i++)
{
buffer[i] = B[i];
}
for(i = 0;i < lenA;i++)
{
flag = 1;
for(j = 0;j < lenB;j++)
{
if(A[i] == B[j])
{
flag = 0;
}
}
if(flag)
{
buffer[index] = A[i];
index++;
}
}
bubbleSort(buffer,lenA+lenB);
for(i = 0;i < lenA+lenB;i++)
{
if(buffer[i] != -1)
printf("%d ",buffer[i]);
}
printf("\n");
}
int intersection(int *A,int *B,int lenA,int lenB)
{
int i,j;
int flag,index = 0,len = lenA > lenB ? lenA:lenB;
int *buffer = (int *)malloc(sizeof(int) * len);
for(i = 0;i < lenA;i++)
{
flag = 0;
for(j = 0;j < lenB;j++)
{
if(A[i] == B[j])
flag = 1;
}
for(j = 0;j < index;j++)
{
if(A[i] == buffer[j])
flag = 0;
}
if(flag)
{
buffer[index] = A[i];
index++;
}
}
for(i = 0;i< index;i++)
printf("%d ",buffer[i]);
printf("\n");
}
int complementary(int *A,int *B,int lenA,int lenB)
{
int i,j;
int flag,index = 0;
int *buffer = (int *)malloc(sizeof(int) * lenA);
for(i = 0;i < lenA;i++)
{
flag = 1;
for(j = 0;j < lenB;j++)
{
if(A[i] == B[j])
flag = 0;
}
if(flag)
{
buffer[index] = A[i];
index++;
}
}
for(i = 0;i < index;i++)
printf("%d ",buffer[i]);
printf("\n");
}
int main()
{
int a[MAX],b[MAX];
int i = 0,m = 0,n = 0;
scanf("%d",&n);
for(i = 0;i < n;i++)
scanf("%d",&a[i]);
scanf("%d",&m);
for(i = 0;i < n;i++)
scanf("%d",&b[i]);
printf("\n");
intersection(a,b,n,m);
unionSet(a,b,n,m);
complementary(a,b,n,m);
}