當前位置:首頁 » 編程語言 » 集合和c語言

集合和c語言

發布時間: 2022-02-23 07:56:58

A. c語言編程,集合

動態規劃.

#include<stdio.h>
/*#include<stdlib.h>*/
#include<memory.h>

#defineN5050

intmain(intargc,char*argv)
{
intd[N];
intn,s;
while(scanf("%d",&n)!=EOF){
s=n*(n+1)>>1;
if(s&1){
printf("0 ");
}
else{
s=s>>1;
inti,j;
memset(d,0,N*sizeof(d[0]));
d[0]=1;
for(i=1;i<=n;i++){
for(j=s;j>=i;j--){
d[j]=d[j]+d[j-i];
}
}
printf("%d ",d[s]>>1);
}
}
return0;
}

B. c語言中集合的用法

嘿,在C語言中,沒有「集合」的概念。在pascal語言中,有「集合」的概念。

C. 用C語言編寫一個集合的交,並和差運算的程序怎麼寫啊

/*第一,你的題意不明,我只能輸入兩個集合了【互異性由輸入保證】*/
#include<stdio.h>
#include<string.h>
void main()
{
char temp[60]="",str1[30]="",str2[30]="",i,j,l1,l2,ch;
printf("STR1:");
gets(str1);
printf("STR2:");
gets(str2);
l1=strlen(str1);
l2=strlen(str2);
//交集
printf(" 交集: {");
for(i=0;i<l1;i++)
for(j=0;j<l2;j++)
if(str1[i]==str2[j]) printf("%c,",str1[i]);
printf("} ");

//並集 偷懶的演算法: 合並->排序->刪除相同
printf(" 並集: {");

/*合並*/sprintf(temp,"%s%s",str1,str2);
/*排序*/
for(i=0;i<l1+l2-1;i++)
for(j=i+1;j<l1+l2;j++)
if(temp[i]>temp[j])
{
char ch;
ch=temp[i];
temp[i]=temp[j];
temp[j]=ch;
}
/*刪除相同字元*/
for(i=j=1;i<l1+l2;i++)
if(temp[i]!=temp[j-1]) temp[j++]=temp[i];
temp[j]=''
for(i=0;i<j;i++)
printf("%c,",temp[i]);
printf("} ");
//CuA
printf(" CuA: {");
for(ch='a'ch<='z'ch++)
{
for(i=0;i<l1;i++)
if(ch==str1[i]) goto NOT;
printf("%c,",ch);
NOT:if(0);
}
printf("} ");
//CuB
printf(" CuB: {");
for(ch='a'ch<='z'ch++)
{
for(i=0;i<l2;i++)
if(ch==str2[i]) goto NOT2;
printf("%c,",ch);
NOT2:if(0);
}
printf("} ");
}

D. 怎樣用語言c語言實現集合的合並,交集

通過你描述的問題,正確的交集代碼如下:
void
bing(char
a[],char
b[],int
m,int
n)
{
char
d[400];
int
i=0,j=0,s=m;
for(i=0;i<m;i++)
d[i]=a[i];
for(i=0;i<n;i++){
for(j=0;j<m;j++)
{
if(b[i]==a[j])
break;
}
if(j==m)
d[s++]=b[i];
}
cout<<"集合並集是:";
for(i=0;i<s;i++)
cout<<d[i]<<"
";
}

E. c語言 集合a-b

std::set<int> a;std::set<int> b;
std::set<int> c = a-b;

F. 用c語言編寫兩個集合的運算

記得採納哦

集合

#include "stdafx.h"

#include <stdio.h>

int fun(int a,int M[])//判斷元素是否在集合里 在返回1 不在返回0

{

int i=0;

for(i=0;M[i]!=0;i++)

if(a==M[i]) return 1;

return 0;

}

void get(int M[])//輸入集合元素

{

int i=0;

printf(" ");

do

{

scanf("%d",&M[i++]);

}

while(M[i-1]!=0);

}

void print(int M[])//列印集合

{

int i=0;

printf(" ");

while(M[i]!=0)

{

printf("%d ",M[i++]);

}

printf(" ");

}

void clear(int M[])

{

int i=0;

do

{

M[i++]=0;

}

while(M[i]!=0);

}

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 i,j=0;

for(i=0;A[i]!=0;i++)

{

if(!fun(A[i],B)) C[j++]=A[i];

}

}

void fun_J(int A[],int B[],int C[])//集合A和集合B的交集

{

int i,j=0;

for(i=0;A[i]!=0;i++)

{

if(fun(A[i],B)) C[j++]=A[i];

}

}

int main(int argc, char* argv[])

{

int A[50]={0},B[50]={0},C[100]={0};

printf("請輸入集合A以0結束 ");

get(A);

printf("請輸入集合B以0結束 ");

get(B);

fun_sum(A,B,C);

printf("集合A與集合B的並: ");

print(C);

clear(C);

fun_sub(A,B,C);

printf("集合A與集合B的差: ");

print(C);

clear(C);

fun_J(A,B,C);

printf("集合A與集合B的交: ");

print(C);

return 0;

}

G. 實驗、集合的交、並差 用c語言

#include"stdio.h"

intinput(intd[],intn)
{
inti;
//n=0;
do
{
scanf("%d",d+n);
n+=1;
}while(d[n-1]>=0);
d[n-1]='';
returnn-1;
}
voidsort(intd[],int*n)
{
inti,j,t,k;
for(i=0;i<*n-1;i++)
{
for(j=*n-1;j>i;j--)
{ if(d[j]==d[j-1])
{
*n-=1;
for(k=j;k<*n;k++)
d[k]=d[k+1];
}
if(d[j]<d[j-1])
{
t=d[j];d[j]=d[j-1];d[j-1]=t;
}

}
}
}
intfn(intd1[],intnum1,intd2[],intnum2)
{
inti,j,m;

for(i=0;i<num1;i++)
{
m=0;
for(j=0;j<num2;j++)
{
if(d1[i]==d2[j])
{
m=1;
break;
}
}
if(m==0)
printf("%d,",d1[i]);
}
}
intmain()
{
intA[100],B[100],C[200];
intnuma,numb,n;
inti,j;
//輸入
printf("inputsortA:");
numa=input(A,0);
sort(A,&numa);
printf("inputsortB:");
numb=input(B,0);
sort(B,&numb);
//交集
printf("集合交集A∩B={");
for(i=0;i<numa;i++)
{
for(j=0;j<numb;j++)
{
if(A[i]==B[j])
{
printf("%d,",A[i]);
}

}
}
printf("} ");
//並集
n=numa+numb;
printf("集合並集A∪B={");
for(i=0;i<numa;i++)
{
C[i]=A[i];
}
for(i=numa;i<n;i++)
{
C[i]=B[i-numa];
}
sort(C,&n);
for(i=0;i<n;i++)
printf("%d,",C[i]);
printf("} ");
//集合差
printf("A-B={");
fn(A,numa,B,numb);
printf("} ");
}

H. C語言求集合運算

可以用線性表模擬集合,把兩個線性表中一樣的數提取出來就是交集,所有元素組成的就是並集,還可以用C++重載運算符實現+就求並集之類的。

I. c語言 集合的差,交,並,笛卡爾積的運算。例如A={2,3,4,5,6,7,8}B={2,3,4,5,11,25}

交:C={2,3,4,5} 就是既屬於A的又屬於B的那部分
並:C = {2,3,4,5,6,7,8,11,25} 兩個集合的整合去掉重復的。A+B-AB(AB:公共部分)
差:C= {6,7,8}就是屬於A但是不屬於B的那部分
笛卡爾乘積:這個得出的集合就多了:舉個例子。。假設集合A={a,b},集合B={c,d}則兩個集合的笛卡爾積為{(a,c),(a,d),(b,c),(b,d)}

J. c語言裡面有集合嗎

你好,不清楚你說的集合是什麼概念,但是c語言裡面有數組,表示形式和集合很相像,你可以研究研究。學c語言會學到的。加油!
中國物聯網校企聯盟技術部

熱點內容
php判斷進制 發布:2025-01-09 09:54:44 瀏覽:280
何謂編程結構 發布:2025-01-09 09:54:09 瀏覽:381
python期末 發布:2025-01-09 09:54:01 瀏覽:707
方舟和輻射4哪個要求配置高 發布:2025-01-09 09:48:14 瀏覽:874
如何遊玩我的世界外國伺服器 發布:2025-01-09 09:21:27 瀏覽:468
烏克蘭編程 發布:2025-01-09 09:16:33 瀏覽:310
python填充0 發布:2025-01-09 09:16:32 瀏覽:364
流通值源碼 發布:2025-01-09 09:05:45 瀏覽:147
什麼是雙套配置保護 發布:2025-01-09 09:04:17 瀏覽:755
聯想電腦忘記開機密碼怎麼辦 發布:2025-01-09 08:59:06 瀏覽:941