係統粉 > 電腦問答 > 其他問答

已解決求關於集合各種運算的C語言程序

提問者:c區47號  |  瀏覽次  |  提問時間:2017-02-11  |  回答數量:3

求關於集合各種運算的C語言程序 急求求關於集合各種運算的C語言程序,大家幫忙!謝謝啊

已有3條答案
我代表悟空好嗎

我代表悟空好嗎

回答數:71  |  被采納數:6

# 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");
}
}
2017-02-11 09:17:50
讚 7
nt_purple

nt_purple

回答數:45  |  被采納數:103

這麼多的代碼,看起來頭暈啊
2017-02-11 10:07:09
讚 4
西王母天石

西王母天石

回答數:206  |  被采納數:7

五個小程序的集合,沒有用函數之類的,所以顯得長,因為我自己解決了,就先放上去,把帖子設成解決
2017-02-11 09:55:03
讚 20
相關問答
最新其他問答
解決方法