c语言求并集

Python021

c语言求并集,第1张

#include <stdio.h>

void main()

{

int a[100],b[100],m,n,i=0,j=0,k=0,p=0

printf("input a[],end of -1:\n")

scanf("%d",&a[0])

while(a[i]!=-1){

i++

scanf("%d",&a[i])

}

m=i

printf("input b[],end of -1:\n")

scanf("%d",&b[0])

while(b[j]!=-1){

j++

scanf("%d",&b[j])

}

n=j

for(j=0j<nj++){

for(i=0i<mi++){

if(a[i]==b[j])

p=1

}

if(p!=1){

a[m+k]=b[j]

k++

}

p=0

}

for(i=0i<m+ki++)

printf("%d ",a[i])

}

#include <stdio.h>

#include <string.h>

int main(int argc, char* argv[])

{

  char a[20],b[20]

 int n,m,j,k

 printf ("请输入第一个集合内容\n")

 scanf ("%s",a)

 j=strlen(a)

 printf ("请输入第二个集合内容\n")

 scanf ("%s",b)

 k=strlen(b)

 

 printf ("集合的交集是:")  ///////////////////////计算2个数组的交集////////////////////  //flag标志位,index数组下标标志位 int flag=1, index=0 //c[20]保存交集的数组,d[40]保存并集的数组

 char c[20]="",d[40]=""

 for (n=0n<jn++)

 {

  for (m=0m<=km++)

  {

   if(a[n] == b[m])

   {

    c[index++] = a[n]

    break

   }

  }

 }

 printf("\n%s\n",c) ////////////////////////////计算2个数组的并集/////////////////////// flag=1

 index=0

 for (n=0n<jn++)

 {

  for(m=0m<indexm++)

  {

   if(d[m] == a[n])

    flag=0

  }

  if(flag)

  {

   d[index++]=a[n]

  }

  flag=1

 }

 flag=1

 for (n=0n<jn++)

 {

  for(m=0m<indexm++)

  {

   if(d[m] == b[n])

    flag=0

  }

  if(flag)

  {

   d[index++]=b[n]

  }

  flag=1

 } printf ("集合的并集是:")

 printf("\n%s\n",d)

 return 0

}