⑴ c語言求集合運算
可以用線性表模擬集合,把兩個線性表中一樣的數提取出來就是交集,所有元素組成的就是並集,還可以用C++重載運算符實現+就求並集之類的。
⑵ 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)}
⑶ C語言 集合運算
Deletetable函數有兩個地方把pcollelm寫成了collelm
Addition函數體第4行沒加分號
Addition函數中3次調用AppendToTable時都寫了3個參數,但AppendToTable只聲明了2個參數
Multiply的返回類型寫了collelm,應該是pcollelm
Multiply的函數參數是x,y,但函數體裡面寫的是a,b
Multiply里調用AppendToTable時,p的前面不用寫類型
main的第3行,p=collp;改成p=&collp;
main裡面case 2調用Deletetable時,第一個參數是Collelm類型的colla,但Deletetable對應的參數類型是Collelm *
⑷ 用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;
}
⑸ 用C語言實現集合的並集
用兩個數組表示集合元素
對於AUB=C
先把A的數據 復制到C裡面
然後 遍歷B數組,每個元素和A對比,如果存在 則略過,否則添加到C中。
等到的C
即為並集
⑹ 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;
}
⑺ c語言裡面有集合嗎
你好,不清楚你說的集合是什麼概念,但是c語言裡面有數組,表示形式和集合很相像,你可以研究研究。學c語言會學到的。加油!
中國物聯網校企聯盟技術部
⑻ 怎樣用語言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]<<"
";
}
⑼ c語言中集合的用法
嘿,在C語言中,沒有「集合」的概念。在pascal語言中,有「集合」的概念。
⑽ C語言集合類型邏輯類型
C語言中既沒有邏輯類型也沒有集合類型。
在C++和VB里有邏輯類型,C++中為bool,VB中為
Boolean。其值有true和
false兩種,true代表真,false代表假。
C語言沒有邏輯類型,如果要表示邏輯類型,只能用整型值代替。0代表false,非0代表true。
集合是一種元素間無序的類型。C語言沒有集合類型。
(注意:數組不算集合類型,因為數組元素之間有前驅和後繼關系。)