集合的交并运算

完成集合的相关运算。
思路和相关代码:
首先局限于输入数字0~9和非空格字符的集合。
1.创建两个字符型数组a,b;
2.创建交集运算的函数;
(创建新的字符型数组c,通过两个for循环查找出相同的元素,即外循环为a数组,内循环为b数组,判断是否有相同的元素,相同的话放入c数组中)在这里插入代码片
void jiaoji(char a[],char b[],int m,int n)
{
int k=0;
char c[100]={"\0"};
for(int i=0;i {
for(int j=0;j {
if(a[i]b[j]) c[k++]=a[i];
}
}
for(int i=0;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 {
c[i]=a[i];
}
for(int i=0;i {
for(int j=0;j {
if(b[i]c[j]) break;
if(j
m)
{
c[m+k]=b[i];
k++;
}
}
}
for(int i=0;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(h
1)
  {
   printf(“请输入不带空格的集合A的元素:”);
  }
  else break;
 }
}

你可能感兴趣的:(集合的交并运算)