当前位置:系统粉 > 电脑问答 > 其他问答 > 求关于集合各种运算的C语言程序

求关于集合各种运算的C语言程序

提问者:c区47号  |  浏览 次  |  提问时间:2017-02-11  |  回答数量:3

求关于集合各种运算的C语言程序 急求求关于集合各种运算的C语言程序,大家帮忙!谢谢啊

已有3条答案
我代表悟空好吗

我代表悟空好吗

回答数:71  |  被采纳数:6

2017-02-11 09:17:50
# include<stdio.h>
void main()
{int a[100],b[100],c[100];
int d,i,j,k=0,m=0,n=0,x=0,y=0;
char z;
printf("1:集合的并集\n2:集合的交集\n3:集合的差集\n4:集合的补集\n5:集合的对称差\n");
printf("请从1,2,3,4,5中选择一个数进入运算");
scanf("%d",&d);
if(d>5||d<1)
{printf("数据输入错误!\n");
printf("请重新输入数据");
scanf("%d",&d);
}
if(d==1)
{for(i=0;z!=&#39;\n&#39;;i++)
{scanf("%d%c",&a[ i ],&z);
m++;
}
z=&#39;f&#39;;
for(i=0;z!=&#39;\n&#39;;i++)
{scanf("%d%c",&b[ i ],&z);
n++;
}
x=m+n;
for(i=m;i<x;i++)
a[ i ]=b[y++];
for(i=0;i<(m+n-1);i++)
for(j=i+1;j<x;j++)
if(a[ i]==a[ j ])
{ for(k=j;k<x;k++)
a[k]=a[k+1];
x--;
j--;
}
printf("集合的并集为:");
for(i=0;i<x;i++)
printf("%4d",a[ i ]);
printf("\n");
}
if(d==2)
{for(i=0;z!=&#39;\n&#39;;i++)
{scanf("%d%c",&a[ i ],&z);
m++;
}
z=&#39;z&#39;;
for(i=0;z!=&#39;\n&#39;;i++)
{scanf("%d%c",&b[ i ],&z);
n++;
}
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(a[ i ]==b[ j ])
{ c[x++]=a[ i ];
y++;

}
printf("集合的交集为:");
if(!y)
printf("空集");
if(y)
for(i=0;i<y;i++)
printf("%4d",c[ i ]);

}
if(d==3)
{ for(i=0;z!=&#39;\n&#39;;i++)
{scanf("%d%c",&a[ i ],&z);
m++;
}
z=&#39;z&#39;;
for(i=0;z!=&#39;\n&#39;;i++)
{scanf("%d%c",&b[ i ],&z);
n++;
}
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(a[ i ]==b[ j ])
{for(k=i;k<m;k++)
a[k]=a[k+1];
i--;
m--;

}
printf("集合a对b的差集为:");
for(i=0;i<m;i++)
printf("%4d",a[ i ]);
}
if(d==4)
{ for(i=0;z!=&#39;\n&#39;;i++)
{scanf("%d%c",&a[ i ],&z);
m++;
}
z=&#39;z&#39;;
for(i=0;z!=&#39;\n&#39;;i++)
{scanf("%d%c",&b[ i ] ,&z);
n++;
}
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(b[ i ]==a[ j ])
{ for(k=j;k<m;k++)
a[ k ]=a[k+1];
j--;
m--;
}
printf("集合b关于a的补集为:");
for(i=0;i<m;i++)
printf("%4d",a[ i ] );
}
if(d==5)
{ for(i=0;z!=&#39;\n&#39;;i++)
{scanf("%d%c",&a[ i ],&z);
m++;
}
z=&#39;z&#39;;
for(i=0;z!=&#39;\n&#39;;i++)
{scanf("%d%c",&b[ i ],&z);
n++;
}
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(a[ i ]==b[ j ])
{for(x=i;x<m;x++)
a[ x ]=a[x+1];
for(y=j;y<n;y++)
b[ y ]=b[ y+1 ];
i--;
j--;
m--;
n--;
}
for(z=m;z<m+n;z++)
a[ z ]=b[k++];
printf("集合a,b的对称差为:");
for(i=0;i<m+n;i++)
printf("%4d",a [ i ]);
printf("\n");
}
}
赞 7
nt_purple

nt_purple

回答数:45  |  被采纳数:103

2017-02-11 10:07:09
这么多的代码,看起来头晕啊
赞 4
西王母天石

西王母天石

回答数:206  |  被采纳数:7

2017-02-11 09:55:03
五个小程序的集合,没有用函数之类的,所以显得长,因为我自己解决了,就先放上去,把帖子设成解决
赞 20
解决方法
版权信息

Copyright @ 2011 系统粉 版权声明 最新发布内容 网站导航