c语言求2个集合并集,这个程序帮忙解释下,看不懂

#include<stdio.h>
#include<string.h>
void main()
{
int i,count=0,ch1[256]={0},ch2[256]={0};
char s1[20],s2[20];
gets(s1);
gets(s2);
for(i=0;i<256;i++)
if(ch1[i]>0||ch2[i]>0)
{putchar(i);
count++;
}
if(count==0)
printf("NULL");
putchar('\n');
getchar();
}

#include<stdio.h>
#include<string.h>
void main()
{
int i,count=0,ch1[256]={0},ch2[256]={0};
char s1[20],s2[20];
gets(s1);//从键盘输入S1
gets(s2);//从键盘输入S2
for(i=0;i<256;i++)//循环
if(ch1[i]>0||ch2[i]>0)//如果ch1的第i个元素不为0,并且,ch2的第i个元素也不为0,
{putchar(i);//打印i
count++;//计数器加1
}//换句话说就是只有ch1[i]与ch2[i]都为'\0'时才不打印i
if(count==0)//如果计数器=0
printf("NULL");//打印NULL
putchar('\n');//打印换行
getchar();//敲任意建结束
}

个人感觉,这个程序是有问题的,ch1根ch2都是int类型的,s1,s2根ch1,ch2没有一毛钱关系。
果然有问题,楼主哪里搞的程序,修改好了再发上来,好不好?
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-22
我只想说,这程序跟题目真是一对吗?
难道俺眼花了?
能看懂就是高手!
跟并集有什么关系呢?

用c语言求两个集合的交集,并集,差集
} \/* 交集 *\/\/* A与B的交集(A∩B):既属于A又属于B的元素构成的集合 *\/int setIntersection (set A, set B, set *dest) {int i = 0, j = 0, k = 0;dest->length = 0;for (i=0; i<A.length; i++) { \/* 外循环遍历A *\/for (j=0; j<B.length; j++) { \/* ...

用C语言求两个整数集合的并集.
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);char c[20]="",d[40]="";for (n=0;n<j...

用C语言简单编写两个集合的交,并,差,对称差
对称差函数`sym`利用并集和交集的计算结果,找出两个集合的对称差。首先计算两个集合的并集,去除交集部分,得到对称差。程序通过`input`函数实现集合元素的用户输入,确保每个元素在集合中唯一。最后,`main`函数提供了交互式输入界面,用户可以选择执行不同的集合操作。程序简洁高效,适用于学习C语言集合操...

...帮助,利用C语言实现:求任意两个集合的交集、并集、差集,
以前写过一个纯C的, 用的是数组,模拟C++ STL里面的set_intersection,set_union和set_difference的实现。 稍作了修改,添加了些注释,希望能帮到你。注意:必须先对输入集合排序;输出结果和C++ STL的测试结果吻合。include <stdio.h>#include <stdlib.h>#include <string.h>int set_intersection (...

用c语言编写两个集合的运算
void fun_sum(int A[],int B[],int C[])\/\/集合A和集合B的并集 { int i,j;for(i=0;A[i]!=0;i++){ C[i]=A[i];} for(j=0;B[j]!=0;j++){ if(!fun(B[j],C)) C[i++]=B[j];} } void fun_sub(int A[],int B[],int C[])\/\/集合A和集合B的差集 { int...

...两个集合A,B(成员为整数),求两个集合的交集,并集,结果存 放于A中...
include <stdio.h>#include <malloc.h>typedef struct node {int num;struct node *next;}AGG;AGG *CreateList() { \/\/ 创建单循环链表,返回链表头AGG *head,*p;int i,n;printf("结点个数n = ");scanf("%d",&n);head = p = (AGG *)malloc(sizeof(AGG)); \/\/ 专用头结点head->...

c语言求两个数组的并交集
只简单地分析了一下交集的情况,求并集类似。百度知道这个代码支持不怎么好,复制粘贴到 vs 之类的代码编辑器里面缩进一下会比较好看。见代码如下:include <stdio.h> include <stddef.h> include <stdlib.h> include \/\/ 使用整型数组为例,其它数组同理 \/\/ 交集 \/\/ 通过迭代遍历判断相同元素,...

求一个C语言程序 要求两个集合的交集 并集 笛卡尔乘积 在线等_百度...
{C[k++]=A[i];再跳出j循环,回到i,反正不是break那个C存交} 同样∪用循环,首先把A中的全部放入D中,B中的元素如果C中有,不写入D中,没有写入D中,或者去看D中有没有,决定写不写!笛卡尔积用二维数组,for(i=0,k=0,i<A的长度,i++)for(j=0,j<B的长度,j++)E[i][j]=(...

哪位大神帮忙检查一下这个程序,求2个链接的并集,不知道哪个错误了_百 ...
} void CreateListR(LinkNode *L, ElemType a[], int n) \/\/尾插法建立链表{LinkNode *s, *r;r = L;for (int i = 0; i<n; i++){s = (LinkNode *)malloc(sizeof(LinkNode));s->data = a[i];r->next = s;r = s;}r->next = NULL;}void SortList(LinkNode *L) \/...

...个整数集合 a,b. 分别编写函数求这两个集合的并集(剔除重复元_百度...
include<iostream>using namespace std;class MergeList{int *a;int size;public:MergeList(int size,int init){this->size=size;a=new int[size];for(int i=0;i<size;i++){a[i]=init;}}MergeList(){}MergeList(const MergeList&obj){this->size=obj.size;a=new int[size];for(int ...

相似回答