永发信息网

关于数据结构顺序表求集合交集并集的问题

答案:2  悬赏:60  手机版
解决时间 2021-01-28 03:24
#include
#define list_init_size 100
#define listincrement 10
typedef struct
{
char elem[80];
int length;
}sqlist;
void creatsq (sqlist *l,char c[],int n)
{
int i;
for(i=0;i<=n;i++)
{
l->elem[i]=c[i];
}
l->length=n;
}
void printsq (sqlist l)
{
int i;
for(i=0;i{
printf("%c",l.elem[i]);
}
}
void bing(sqlist l1,sqlist l2,sqlist *l3)
{
int i,j,k=0;
l3->length=l1.length;
for(i=0;i{
l3->elem[i]=l1.elem[i];
}
for(j=0;j{
while(l2.elem[j]!=l1.elem[k])
{
k++;
if(k>=l3->length)
{
break;
l3->elem[l3->length]=l2.elem[j];
l3->length++;
}
}
k=0;
}
}
void jiao(sqlist l1,sqlist l2,sqlist *l3)
{
int i,j=0,k=0;
for(i=0;i{
while( (jj++;
if(jl3->elem[k++]=l1.elem[i];
}
l3->length=k;
}
void main()
{
sqlist l1,l2,l3;
char c1[80],c2[80];
int i,j,k,n,m;
//输入集合1
printf("请输入集合1的元素个数:\n");
scanf("%d",&i);
printf("请输入集合1的元素:\n");
for (j=0; j{
scanf("%c",&c1[j]);
}
creatsq(&l1,c1,i);
//输入集合2
printf("请输入集合2的元素个数:\n");
scanf("%d",&k);
printf("请输入集合2的元素:\n");
for (n=0; n{
scanf("%c",&c2[n]) ;
}
creatsq(&l2,c2,k);
while(1)
{
printf("请选择需要的功能:1-求交集;2-求并集\n");
scanf("%d",&m);
switch(m)
{
case 1:
{
jiao(l1,l2,&l3);
printsq(l3);
break;
}
case 2:
{
bing(l1,l2,&l3);
printsq(l3);
break;
}
default:printf("error\n");
}
}
}

以上程序,运行的时候总是输出不了结果,不解,真心求助,跪求大神帮忙
最佳答案
#include
#define list_init_size 100
#define listincrement 10
typedef struct
{
char elem[80];
int length;
}sqlist;
//
void creatsq (sqlist *l,char c[],int n)
{
int i;
for(i=0;i<=n;i++)
{
l->elem[i]=c[i];
}
l->length=n;
}
//输出集合的元素
void printsq (sqlist l)
{
int i;
printf("该集合的元素为\n");
for(i=0;i {
printf("%c ",l.elem[i]);
}
printf("\n");
}



void bing(sqlist l1,sqlist l2,sqlist *l3)
{
int i,j,k=0;
l3->length=l1.length;

for(i=0;i {
l3->elem[i]=l1.elem[i];
}

for(i=0;i {
for(j=0;j {
if(l2.elem [i]==l1.elem [j])
break;
}
if(j==l1.length )
l3->elem [l3->length ++]=l2.elem [i];
}


}


void jiao(sqlist l1,sqlist l2,sqlist *l3)
{
int i,j=0,k=0;//
for(i=0;i {
j=0;/////////////////////
while( (j j++;
if(j l3->elem[k++]=l1.elem[i];
}
l3->length=k;
}
////////////
void main()
{
sqlist l1,l2,l3;
char c1[80],c2[80];
int i,j,k,n,m;

//输入集合1
printf("请输入集合1的元素个数:\n");
scanf("%d",&i);
getchar();////////////
for (j=0; j {
printf("请输入集合1的第%d个元素:",j+1);
scanf("%c",&c1[j]);
getchar();//////////////////////////

}
creatsq(&l1,c1,i);
printsq(l1);

//输入集合2
printf("请输入集合2的元素个数:\n");
scanf("%d",&k);
getchar();
for (n=0; n {
printf("请输入集合2的第%d个元素:",n+1);
scanf("%c",&c2[n]) ;
getchar();
}
creatsq(&l2,c2,k);
printsq(l2);
//功能
while(1)
{
printf("请选择需要的功能:1-求交集;2-求并集\n");
scanf("%d",&m);
switch(m)
{
case 1:
{
printf("交集的结果:");
jiao(l1,l2,&l3);
printsq(l3);
break;
}
case 2:
{
printf("并集的结果:");
bing(l1,l2,&l3);
printsq(l3);
break;
}
default:printf("error\n");
}
}

}
全部回答
#include #define maxsize 50 typedef struct node { int data[maxsize]; int length; }seqlink; int len1; int len2; int arr[maxsize]; void seqlinkinit(seqlink *l)//初始化 { l->length = -1; } int creatseqlink(seqlink *l)//创建顺序表 { while (1) { if (maxsize-1 < ++l->length) { printf("表满!\n"); return 0; } scanf("%d", &l->data[l->length]); if (0 == l->data[l->length]) { break; } } return l->length; } void a(seqlink *l1, seqlink *l2)//求交集 { int i, j; int count = 0; for (i=0; idata[i] == l2->data[j]) { arr[count++] = l1->data[i]; break; } } } } void b(seqlink *l1, seqlink *l2)//求并集 { int i, j; int num; int flag; int count = 0; for (i=0; idata[i]; } num = count; for (i=0; idata[i]) { flag = 0; break; } } if (1 == flag) { arr[count++] = l2->data[i]; } } } void output(void)//输出 { int i; for (i=0; arr[i]!=0; i++) { printf("%d ", arr[i]); } printf("\n"); } void main(void) { seqlink l1; seqlink l2; seqlinkinit(&l1); seqlinkinit(&l2); printf("请输入集合a:(按0结束输入)\n"); len1 = creatseqlink(&l1); printf("请输入集合b:(按0结束输入)\n"); len2 = creatseqlink(&l2); a(&l1, &l2); printf("a与b交集为:\n"); output(); b(&l1, &l2); printf("a与b并集为:\n"); output(); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求美的电饭煲FB-YN40-CM电路图。现在煮饭,按
按征税性质分类,进口关税可以分为()。A.普通
帮我想几个关于杀阡陌的网名,要好听点的哦~
急需200个QQ号,必须没人用过的,可直接加为
猫猫萌吧地址在哪,我要去那里办事
一个虚拟赛车动画片,主角一玩虚拟赛车就晕
上院的意思是什么啊?知道的请说下!
国内比较好的【母婴健康】达人都有哪些?
和爱到万年前奏相似的乐曲有木有啊???
企业中为轮班方便,多人共用一个保险柜的利弊
海带排骨汤里可以放瑶柱和红枣吗
棉花糖地址有知道的么?有点事想过去
存天天利理财一般要存多少以上才可以
交迹的意思是什么啊?知道的请说下!
邵阳市华融湘江银行宝庆路哪里有
推荐资讯
甲数的五分之二等于乙数的三分之二,若甲数减
兼客兼职里的兼职有没有网上完成的
什么是集团控股公司
递流的意思是什么啊?知道的请说下!
2011年上海合作组织成立十周年。“十年磨一剑
太平洋保险2015年1月~11月份财富管家账户利率
高达模型油漆稀释液问题
我负责扫地,擦桌子(没有抹布去借的),要具
请问社会养老保险每年是以20%递增的吗
剑圣是加强了还是削弱了?新技能怎么样?
【我想问,最后那三步讨论是什么意思,谢谢了!
民本中学怎么去啊,我要去那办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?