如何用C语言编写求交集和并集的程序?

如题,我已经编写了部分求交集的程序,请帮我再补充修改一下。另外,由于是初学者,要求只用数组来完成该程序编写。谢谢~#include <stdio.h>
#include <string.h>
void main()
{
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 ("集合的交集是:");
for (n=1;n<j;n++)
for (m=1;m<=k;m++)
{
(补充)
}
}

char c[20];//存储交集的字符int count=0;//统计交集个数for (n=1;n<j;n++)
for (m=1;m<=k;m++)
{
if(a[n]==b[m]) { c[count]=a[n]; count++; }
}
} c[count]='\0';printf("交集为%s",c);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-02
if(a[n]==b[m]]) printf("%c ",,a[n]);在补充的地方添上这就实现了求交集 还要求并集的吗
第2个回答  2013-07-02
楼上答案有问题。for (n=1;n<j;n++)
for (m=1;m<=k;m++)a[0] b[0]没加入比较
第3个回答  2013-07-02
#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=0;n<j;n++)
{
for (m=0;m<=k;m++)
{
if(a[n] == b[m])
{
c[index++] = a[n];
break;
}
}
}
printf("\n%s\n",c); ////////////////////////////计算2个数组的并集/////////////////////// flag=1;
index=0;
for (n=0;n<j;n++)
{
for(m=0;m<index;m++)
{
if(d[m] == a[n])
flag=0;
}
if(flag)
{
d[index++]=a[n];
}
flag=1;
}
flag=1;
for (n=0;n<j;n++)
{
for(m=0;m<index;m++)
{
if(d[m] == b[n])
flag=0;
}
if(flag)
{
d[index++]=b[n];
}
flag=1;
} printf ("集合的并集是:");
printf("\n%s\n",d);
return 0;
}本回答被网友采纳