c語言并集函數(shù),函數(shù)的并集

用C語言求兩個整數(shù)集合的并集.

有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ù)。

參考資料來源:百度百科-集合

怎么用C語言編寫求兩個數(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;

}

C語言求兩個順序表的并集

#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");

}

你的鏈表長度沒有隨著鏈表元素的增加而增加,我改過了,你試下,祝好運

c語言求并集

#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]);

}

應用c語言編程:求兩個有序集合的并集

#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)

成都網(wǎng)站建設(shè)