有a、b 2個數(shù)組,把b中每個元素分別和a中每個元素比較,若無重復,則加入數(shù)組a。這樣的話一個for語句,再加一個功能函數(shù)(也可以寫在主函數(shù)中)就好。
目前創(chuàng)新互聯(lián)建站已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管維護、企業(yè)網(wǎng)站設(shè)計、光山網(wǎng)站維護等服務(wù),公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
#include stdio.h
#include string.h
int main(int argc, char* argv[])
{
char a[20],b[20];
int n,m,j,k;
printf ("請輸入第一個集合內(nèi)容\n");
scanf ("%s",a);
j=strlen(a);
printf ("請輸入第二個集合內(nèi)容\n");
scanf ("%s",b);
k=strlen(b);
char c[20]="",d[40]="";
for (n=0;nj;n++)
printf("\n%s\n",c);
index=0;
for (n=0;nj;n++)
{
for(m=0;mindex;m++)
if(d[m] == a[n])
flag=0;
d[index++]=b[n];
}
flag=1;
} printf ("集合的并集是:");
printf("\n%s\n",d);
return 0;
}
擴展資料:
集合中元素的數(shù)目稱為集合的基數(shù),集合A的基數(shù)記作card(A)。當其為有限大時,集合A稱為有限集,反之則為無限集。一般的,把含有有限個元素的集合叫做有限集,含無限個元素的集合叫做無限集。
表示
假設(shè)有實數(shù)x y:
①[x,y] :方括號表示包括邊界,即表示x到y(tǒng)之間的數(shù)以及x和y;
②(x,y):小括號是不包括邊界,即表示大于x、小于y的數(shù)。
參考資料來源:百度百科-集合
#include?stdio.h
#include?string.h
int?main(int?argc,?char*?argv[])
{
char?a[20],b[20];
int?n,m,j,k;
printf?("請輸入第一個集合內(nèi)容\n");
scanf?("%s",a);
j=strlen(a);
printf?("請輸入第二個集合內(nèi)容\n");
scanf?("%s",b);
k=strlen(b);
printf?("集合的交集是:");??///////////////////////計算2個數(shù)組的交集////////////////////??//flag標志位,index數(shù)組下標標志位?int?flag=1,?index=0;?//c[20]保存交集的數(shù)組,d[40]保存并集的數(shù)組
char?c[20]="",d[40]="";
for?(n=0;nj;n++)
{
for?(m=0;m=k;m++)
{
if(a[n]?==?b[m])
{
c[index++]?=?a[n];
break;
}
}
}
printf("\n%s\n",c);?////////////////////////////計算2個數(shù)組的并集///////////////////////?flag=1;
index=0;
for?(n=0;nj;n++)
{
for(m=0;mindex;m++)
{
if(d[m]?==?a[n])
flag=0;
}
if(flag)
{
d[index++]=a[n];
}
flag=1;
}
flag=1;
for?(n=0;nj;n++)
{
for(m=0;mindex;m++)
{
if(d[m]?==?b[n])
flag=0;
}
if(flag)
{
d[index++]=b[n];
}
flag=1;
}?printf?("集合的并集是:");
printf("\n%s\n",d);
return?0;
}
#includestdio.h
#define maxsize 100 //宏定義常量表示線性表的最大長度
struct Sqlist
{
int elem[maxsize]; //線性表占用的數(shù)組空間
int last; //記錄線性表中最后一個元素在數(shù)組elem[]中的位置
};
void initlist(Sqlist L) //初始化線性表
{
L.last=0;
}
void unionlist(Sqlist la,Sqlist lb) //求集合la和lb的并集
{
int i,j,e;
for(i=0;ilb.last;i++)
{
e=lb.elem[i]; j=0; //用e記錄線性表lb中的元素
while((jla.last)(la.elem[j]!=e)) j++; //掃描順序表la,直到找到值為e的元素,或掃描到表尾還沒找到
if(j==la.last)
{
la.elem[la.last]=e;la.last++; //將lb中值不為e的元素加入到la中,表長為la,lb去掉相同元素后的兩表長之和
}
}
}
void main()
{
int i;
char c;
struct Sqlist la,lb;
printf("初始化順序表\n");
initlist(la);
initlist(lb);
printf("請輸入集合a的元素\n");
for(i=0;imaxsize;i++)
{
scanf("%d%c",la.elem[i],c); //輸入la的各元素,各元素之間用空格分開
la.last++;
if(c=='\n') //當輸入Enter時結(jié)束輸入
break;
}
printf("請輸入集合b的元素\n");
for(i=0;imaxsize;i++)
{
scanf("%d%c",lb.elem[i],c);
lb.last++;
if(c=='\n')
break;
}
unionlist(la,lb);
printf("集合a與b的并集為:\n");
for(i=0;ila.last;i++)
printf("%-4d",la.elem[i]);
printf("\n");
}
你的鏈表長度沒有隨著鏈表元素的增加而增加,我改過了,你試下,祝好運
#include stdio.h
void main()
{
int a[100],b[100],m,n,i=0,j=0,k=0,p=0;
printf("input a[],end of -1:\n");
scanf("%d",a[0]);
while(a[i]!=-1){
i++;
scanf("%d",a[i]);
}
m=i;
printf("input b[],end of -1:\n");
scanf("%d",b[0]);
while(b[j]!=-1){
j++;
scanf("%d",b[j]);
}
n=j;
for(j=0;jn;j++){
for(i=0;im;i++){
if(a[i]==b[j])
p=1;
}
if(p!=1){
a[m+k]=b[j];
k++;
}
p=0;
}
for(i=0;im+k;i++)
printf("%d ",a[i]);
}
#includestdio.h
#includestdlib.h
#includetime.h
#define NUMBER1 7
#define NUMBER2 5
void createCollect(int [],int);
void display(int [],int);
int main()
{
int collection1[NUMBER1];
int collection2[NUMBER2];
int collection3[NUMBER1+NUMBER2];
int i,j,label=0;
createCollect(collection1,NUMBER1);
for(j = 0;j NUMBER2;j++)
{
collection2[j]=j*2;
}
printf("集合1:");
display(collection1,NUMBER1);
printf("集合2:");
display(collection2,NUMBER2);
for(i = 0; i NUMBER1;i++)
{
//從集合1中取出元素,去遍歷集合2中的所有元素
for(j = 0;j NUMBER2;j++)
{
//如果相同則跳出遍歷
if(collection1[i]==collection2[j])
break;
}
//判斷:此時存在兩種情況1) 當前集合1的元素與集合2的元素相同
//2)遍歷完了集合2的數(shù)組后不存在相同的元素
if(j == NUMBER2)
{
collection3[label]=collection1[i];
label++;
}
}
//把集合2的所有元素存進collection3中
for(j = 0;j NUMBER2;j++)
{
collection3[label++]=collection2[j];
}
printf("集合1與集合2的并集為:\n");
display(collection3,label);
return 0;
}
//隨機生成一個不含重復元素的數(shù)組
void createCollect(int num[],int count)
{
//randValue:臨時隨機數(shù)存放變量
//condition:循環(huán)生成不重復的條件
int i,j,randValue,condition;
srand(time(NULL));
for(i=0;icount;i++)
{
condition=1;
while(condition){
randValue=1+(int)rand()%10;
for(j = 0;j = i;j++){
if(i==0){//第一個數(shù)不可能存在重復數(shù),可以直接賦值
condition=0;
break;
}
if(randValue==num[j])
break;
if(randValue!=num[j]j==i-1)//當生成的隨機數(shù)與當前數(shù)組最后一位不同并且下標相等時
{
condition=0;
break;
}
}
}
num[i]=randValue;
}
}
//打印數(shù)組
void display(int num[],int count)
{
int i;
for(i=0;icount;i++)
{
printf("%d\t",num[i]);
}
printf("\n");
}
網(wǎng)頁題目:c語言并集函數(shù),函數(shù)的并集
當前鏈接:http://www.muchs.cn/article36/hcppsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、小程序開發(fā)、自適應網(wǎng)站、網(wǎng)站改版、動態(tài)網(wǎng)站、響應式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)