问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请教C++集合运算的做法

发布网友 发布时间:2023-07-08 09:14

我来回答

5个回答

热心网友 时间:2024-08-26 04:34

#include<iostream.h>
#include<stdio.h>
#include<string.h>
int main()
{
int chang1=0,chang2=0,yuansuchang=0,yuansu=0,yuansushuliang1=0,yuansushuliang2=0,i=0,kongge=0,j=0,k=0,yiwei=1,t=0,buchongfushu=0;
char yuansu1[9998];/*定义元素A字符数数组*/
gets(yuansu1);
chang1=strlen(yuansu1);
int*shuzu1=new int[chang1];/*定义元素A字数组*/
for(i=0;i<chang1;i++)
{
shuzu1[i]=0;
}
i=0;
for(i=0;i<chang1;i++)
{
if(yuansu1[i]<=48||yuansu1[i]>=57)
{
continue;
}
if(yuansu1[i]>=48&&yuansu1[i]<=57)
{
yuansuchang++;
}
if((yuansu1[i]>=48&&yuansu1[i]<=57)&&(yuansu1[i+1]<48||yuansu1[i+1]>57))
{
for(j=i;j>i-yuansuchang;j--)
{
shuzu1[yuansu]=((yuansu1[j]-48)*yiwei)+shuzu1[yuansu];
yiwei=yiwei*10;
}
yiwei=1;
yuansu++;
yuansuchang=0;
}
}
yuansushuliang1=yuansu;
cout<<"数组A总共输入了"<<yuansushuliang1<<"个元素:"<<endl;
for(i=0;i<yuansu;i++)
{
cout<<shuzu1[i]<<endl;
}
cout<<"数组A输入完毕。"<<endl;/*数组A结束*/
/*数组B开始*/
yuansu=0;
char yuansu2[9998];/*定义元素B字符数数组*/
gets(yuansu2);
chang2=strlen(yuansu2);
int*shuzu2=new int[chang2];/*定义元素B字数组*/
for(i=0;i<chang2;i++)
{
shuzu2[i]=0;
}
i=0;
for(i=0;i<chang2;i++)
{
if(yuansu2[i]<=48||yuansu2[i]>=57)
{
continue;
}
if(yuansu2[i]>=48&&yuansu2[i]<=57)
{
yuansuchang++;
}
if((yuansu2[i]>=48&&yuansu2[i]<=57)&&(yuansu2[i+1]<48||yuansu2[i+1]>57))
{
for(j=i;j>i-yuansuchang;j--)
{
shuzu2[yuansu]=((yuansu2[j]-48)*yiwei)+shuzu2[yuansu];
yiwei=yiwei*10;
}
yiwei=1;
yuansu++;
yuansuchang=0;
}
}
yuansushuliang2=yuansu;
cout<<"数组B总共输入了"<<yuansu<<"个元素:"<<endl;
for(i=0;i<yuansushuliang2;i++)
{
cout<<shuzu2[i]<<endl;
}
cout<<"数组B输入完毕。"<<endl;/*数组B结束*/
int jiaojishu=0;/*1、A n B开始*/
for(i=0;i<yuansushuliang1;i++)
{
for(j=0;j<yuansushuliang2;j++)
{
if(shuzu1[i]==shuzu2[j])
{
{
jiaojishu++;
}
}
}
}cout<<jiaojishu<<endl;
int*jihe1=new int[jiaojishu];
for(i=0;i<jiaojishu;i++)
{
jihe1[i]=0;
}
for(i=0;i<yuansushuliang1;i++)
{
for(j=0;j<yuansushuliang2;j++)
if(shuzu1[i]==shuzu2[j])
{
if(shuzu1[i]==shuzu2[j])
{
for(k=0;k<jiaojishu;k++)
jihe1[k]=shuzu2[j];
}
}
}
cout<<"A n B:"<<endl;
for(i=0;i<jiaojishu;i++)
{
cout<<jihe1[i]<<endl;
}/*1、A n B结束*/
for(i=0;i<yuansushuliang1;i++)
{
for(j=0;j<yuansushuliang2;j++)
{
if(shuzu1[i]!=shuzu2[j])
{
buchongfushu++;
}
}
}cout<<"[]"<<buchongfushu<<endl;
int*jihe2=new int[yuansushuliang1+buchongfushu];/*2、A U B开始*/
for(i=0;i<(yuansushuliang1+buchongfushu);i++)
{
jihe2[i]=0;
}
for(i=0;i<yuansushuliang1;i++)
{
jihe2[i]=shuzu1[i];
}
for(i=0;i<yuansushuliang2;i++)
{
{
for(j=0;j<buchongfushu;j++)
{
if(jihe2[i]!=shuzu2[j])
{
jihe2[yuansushuliang1+j]=shuzu2[j];
}
}
}
}
cout<<"A U B:"<<endl;
for(i=0;i<(yuansushuliang1+buchongfushu);i++)
{
cout<<jihe2[i]<<endl;
}/*1、A U B结束*/
int*jihe3=new int[yuansushuliang1];/*3、A-B开始*/
for(i=0;i<(yuansushuliang1+buchongfushu);i++)
{
jihe3[i]=0;
}
for(i=0;i<yuansushuliang1;i++)
{
jihe3[i]=shuzu1[i];
}
for(i=0;i<yuansushuliang1;i++)
{
for(j=0;j<yuansushuliang2;j++)
if(jihe3[i]==shuzu2[j])
{
jihe3[i]=0;
}
}
cout<<"A-B:"<<endl;
for(i=0;i<yuansushuliang1;i++)
{
cout<<jihe3[i]<<endl;
}/*3、A-B结束*/
return 0;
}

热心网友 时间:2024-08-26 04:34

是数组当中求这些吗?
是纯数值的吗?

请补充下

热心网友 时间:2024-08-26 04:35

程序太麻烦了
给你点一下, 可以把字母用强制转换函数转换后,再进行运算。就可以了。。

热心网友 时间:2024-08-26 04:35

写一个太麻烦了,引用一个~~
#include <algorithm>
#include <iostream>
#include <set>
using namespace std;
int main()
{
int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
set<int> S( a, a + 9 );
int b[] = { 3, 6, 8, 9 };
set<int> S2( b, b + 4 );
set<int>::iterator site;
set<int> Su;
set<int> Si;
set<int> Sd;
set<int> Ssd;
//交集
set_intersection( S.begin(), S.end(),
S2.begin(), S2.end(),
inserter( Si, Si.begin() ) );
//并集
set_union( S.begin(), S.end(),
S2.begin(), S2.end(),
inserter( Su, Su.begin() ) );
//差集
set_difference( S.begin(), S.end(),
S2.begin(), S2.end(),
inserter( Sd, Sd.begin() ) );
//对称差集
set_symmetric_difference( S.begin(), S.end(),
S2.begin(), S2.end(),
inserter( Ssd, Ssd.begin() ) );
site = Si.begin();
cout<<"the intersection of S and S2 is : ";
while( site != Si.end() )
{
cout<< *site <<" ";
++ site;
}
cout<<endl;
site = Su.begin();
cout<<"the union of S and S2 is : ";
while( site != Su.end() )
{
cout<< *site <<" ";
++ site;
}
cout<<endl;
site = Sd.begin();
cout<<"the difference of S and S2 is : ";
while( site != Sd.end() )
{
cout<< *site <<" ";
++ site;
}
cout<<endl;
site = Ssd.begin();
cout<<"the symmetric difference of S and S2 is : ";
while( site != Ssd.end() )
{
cout<< *site <<" ";
++ site;
}
cout<<endl;
return 0;
}

参考资料:http://blog.sina.com.cn/s/blog_4c98b9600100az2v.html

热心网友 时间:2024-08-26 04:36

#include<iostream>
#include<fstream>
using namespace std;
#define maxsize 64
typedef struct
{
char data[maxsize];
int top;
}seqstack;
seqstack head1,head2,head3;
//char a,b,c;
void setnull(seqstack *s)
{
s->top=-1;
}

int empty(seqstack *s)
{
if(s->top>=0) return 1;
else return 0;
}

void push(seqstack *s,char x)
{
if(s->top==maxsize-1)
{
cout<<"栈已满"<<endl;
}
else
{
s->top++;
s->data[s->top]=x;
}
}

char pop(seqstack *s)
{
if(s->top==-1)
{
cout<<"空站"<<endl;
return NULL;
}
else
{
s->top--;
return (s->data[s->top+1]);
}
}

char top(seqstack *s)
{
//if(empty(s)) return NULL;
return(s->data[s->top]);
}

char jisuan1(char fuhao,char m2,char m1)
{
char jieguo;
if(fuhao=='+')
{
jieguo=m2*m1;
}
else if(fuhao=='-')
{
if(m1=='1'||m2=='1')
jieguo='1';
else jieguo='0';
}
else if(fuhao=='$')
{
if(m1=='1'&&m2=='0')
jieguo='0';
else jieguo='1';
}
return jieguo;
}

char jisuan2(char fuhao,char m)
{
if(m='1')
return '0';
else return '1';
}

void main()
{
char biaodashi[21];
char a,b,c;
cout<<"输入a"<<endl;
cin>>a;
cout<<"输入b"<<endl;
cin>>b;
cout<<"输入c"<<endl;
cin>>c;
ifstream in("e:\\input.txt",ios_base::binary);
in.read((char *)&biaodashi[0],sizeof(biaodashi));
in.close();
int i=0;
setnull(&head1);
setnull(&head2);
setnull(&head3);
while(biaodashi[i]!='@')
{
if(biaodashi[i]=='('||biaodashi[i]=='!'||biaodashi[i]=='+'||biaodashi[i]=='-'||biaodashi[i]=='#'||biaodashi[i]=='$')
{
push(&head1,biaodashi[i]);
}
else if(biaodashi[i]=='a'||biaodashi[i]=='b'||biaodashi[i]=='c')
{
if(biaodashi[i]=='a')
biaodashi[i]=a;
else if(biaodashi[i]=='b')
biaodashi[i]=b;
else if(biaodashi[i]=='c')
biaodashi[i]=c;
push(&head2,biaodashi[i]);
}
else if(biaodashi[i]==')')
{
char s='\0';
//if(empty(&head2)==0)
//{
push(&head3,pop(&head2));
//}
//if(empty(&head1)==0)
s=pop(&head1);
while(1)
{

if(s=='(')
{
if(top(&head1)=='!')
{
push(&head3,pop(&head1));
char jieguo2=jisuan2(pop(&head3),pop(&head3));
push(&head3,jieguo2);
}
break;
}
else
{
if(empty(&head2)==0)
push(&head3,pop(&head2));
push(&head3,s);
char jieguo1=jisuan1(pop(&head3),pop(&head3),pop(&head3));
//push(&head3,jieguo1);
push(&head2,jieguo1);
}
s=pop(&head1);
}
}
cout<<biaodashi[i];
i++;
}
char jieguo=pop(&head3);
cout<<jieguo<<endl;
}
文件内容
((!(a+b)#(a-b)))$c)类似的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
硅胶与液态硅胶手机壳的区别 什么样的过敏会传染 过敏的原理是什么?为什么有的人过敏,有的人不过敏?谢谢! 过敏为什么会痒 评审报告需要注意什么 财政评审流程及注意事项 高效项目评审的6大注意事项 银行双录 什么意思 什么是银行双录 在异地哪些可公证 武汉高铁站和天河机场哪个去汉正街近 10款荣放rav4电视功能怎么用 武汉站到汉正街多远 新时代触碰旧情怀,小众经典车或难避“大浪淘沙” 梁家辉骑马出场,代言CX-50新款SUV,马自达茅塞顿开 天涯海角家家养,银河摘星七月七。楚邦有三六壮士,鄢郑翻七八扫荡。_百... 一半忠义非外人,楚邦有三六壮士。猜生肖或数字 楚邦有三六壮士是什么肖 姜子涵是谁 一半忠义非外人,楚邦有三六壮士。猜一生肖。 ...CCTV5在线直播男足VS约旦视频 央视CCTV5现场直播中国男足VS约旦_百 ... 婴儿辅食伊威和方广哪个好 《大力女子都奉顺》经典台词 暗恋也是有保质期的 搬家拆装家具怎么办_搬家公司能进行拆装家具吗 家具拆装搬家公司哪家好 拆装家具公司有哪些 中国人民广播电台音乐之声整点报时前的那个钢琴曲是什么??在线等... 五月天担当5月musicradio整点报时 四川绵阳 中央人民广播电台第三套音乐之声Music Radio 的频率是多少... 音乐之声music radio如何点播歌曲 高手进!用vc++编写程序代码!输入N个学生数据,计算平均分并输出这些学... 女人戴珍珠什么样的珍珠项链好? 珍珠项链推荐? 女主叫男主白白的总裁文,男主起先装傻 狐狸哪个皮肤有特效 一本台湾言情。好像是男主很白所以女主喊男主小白。男主是一个高管不... 如何激励不自信的员工 公司有太自信的员工要如何处理 怎样管理过于自信的员工,求专业答案 最近工作很盲目,执行力不够怎么办? 妙趣横生的横 不能碰的秘密结局怎么样 妙趣横生的整个意思 秘密的电影叫什么 广场舞下的迷情——两人潇洒快乐 两家人痛苦(4) 求【洛天依】【百合治愈向】外婆桥,mp3格式,最好配上歌词,458320466@qq... 蒙娜丽莎瓷砖价格是多少 Graduation Day (Lp Version) 歌词 斗破苍穹是属于什么类型的小说 每当我再次遇见你是什么歌