计算机应用专业上机考试数据结构辅导
编一C程序,它能读入集合A的一串整数(以-9999为结束标记,整数个数小于1000)和集合B的一串整数(以-9999为结束标记,整数个数小于1000),计算出A与B的交集,
并以由小到大的次序输出A与B的交集中的所有整数(输入整数时,相邻的两个用空格隔开。为A或B输入时,同一个数可能出现多次,而A与B的交集中同一个数不能出现多次)。(注:程序的可执行文件名必须是 e2.exe)。
*/
//注意调试程序时要多输入重复数据调试;本程序是根据青龙提供的程序改编,消除了重复数据的错误!
#include<iostream.h
#include<stdio.h
voidBuCountbbleSort(intr[],intn)
{//冒泡排序
inti,j,k;
intexchange;
for(i=0;i<=n;i++)
{
exchange=0;
for(j=n-1;j=i;j--)
if(r[j+1]<r[j])
{
k=r[j+1];
r[j+1]=r[j];
r[j]=k;
exchange=1;
}
if(!exchange)
break;
}
}
intBingJi(intm[],intn[],intl[],intCountaa,intCountbb)
{//求集合的并集
inti=0,j=0,k=0;
while(i<=Countaa&&j<=Countbb)
{
if(m[i]<n[j])
{//如果m[i]<n[j]则取小的值m[i],然后i++;
l[k]=m[i];
k++;
i++;
}//endif
elseif(m[i]n[j])
{//如果m[i]n[j]则取小的值n[j],然后j++;
l[k]=n[j];
k++;
j++;
}//endelseif
else
{//如果m[i]==n[j],可以任取一个值,然后i++;j++;
l[k]=m[i];
k++;
i++;
j++;
}//endelse
}//endwhile
if(iCountaa)
{//如果iCountaa,即数组m[i]中的元数个数较少,
//则把n[j]中的剩余元素,都付给l[]。
while(j<=Countbb)
{
l[k]=n[j];
j++;
k++;
}//endwhile
}//endif
if(jCountbb)
{//如果jCountbb,即数组n[i]中的元数个数较少,
//则把m[j]中的剩余元素,都付给l[]。
while(i<=Countaa)
{
l[k]=m[i];
i++;
k++;
}//endwhile
}//endif
returnk;//返回生成的数组的元数个数
}//endBuCountbbleSort
intJiaoJi(intm[],intn[],intl[],intCountaa,intCountbb)
{//求集合的交集
///////////////////////////////////
//消除数组m[]中的重复元素
intw,x,y;
for(w=0;w<=Countaa;w++)
{
for(x=w+1;x<=Countaa;x++)
{
if(m[w]==m[x])
{
Countaa--;
for(y=x;y<=Countaa;y++)
{
m[y]=m[y+1];
}//endfor
x--;
}//endif
}//endfor
}//endfor
/*
//测试消除数组中的重复元素的效果用下列循环输出
intz;
for(z=0;z<=Countaa;z++)
{
printf("%d",m[z]);
}
printf("n");
*/
//消除结束
///////////////////////////////////
///////////////////////////////////
//求交集
inti=0,j=0,k=0;
while(i<=Countaa)
{
for(j=0;j<=Countbb;j++)
{//用集合的第一个元素分别和另一个集合的各元素相比较
//然后再用第二个元素(直到最后一个元素)和另一个集合的各元素相比较
if(m[i]==n[j])
{//如果有相同的就保存到l[]中,这样同时消掉了n[]中的重复元素
l[k]=m[i];
k++;
break;
}//endif
}//endfor
i++;
}//endwhile
//求交集结束
//////////////////////////////////
returnk;
}
voidmain()
{
inta[1000],b[1000],c[2000];
intexchange=0;
inti,CountA,CountB,CountC;
printf("inputan");
for(i=0;i<=1000;i++)
{
scanf("%d",&a[i]);
if(a[i]==-9999)
break;
}//endfor
CountA=i-1;
BuCountbbleSort(a,CountA);//先将集合A排序
printf("ninputbn");
for(i=0;i<=1000;i++)
{
scanf("%d",&b[i]);
if(b[i]==-9999)
break;
}//endfor
CountB=i-1;
BuCountbbleSort(b,CountB);//集合B排序
//CountC=BingJi(a,b,c,CountA,CountB);
CountC=JiaoJi(a,b,c,CountA,CountB);
printf("nn");
for(i=0;i<=CountC-1;i++)
{
printf("%d",c[i]);
}
printf("n");
}
【计算机应用专业上机考试数据结构辅导】相关文章:
热点推荐:
工学
- 2020-11-17【工学】2012年自考“工程项目管理”单选练习(9)
- 2020-11-17【工学】2012年自考“互联网软件应用与开发”复习资料(1)
- 2020-11-17【工学】2012年自考“互联网软件应用与开发”复习资料(18)
- 2020-11-17【工学】2012年自考“互联网软件应用与开发”复习资料(34)
- 2020-11-17【工学】2012年自考“互联网软件应用与开发”复习资料(35)
- 2020-11-17【工学】2012年自考“互联网软件应用与开发”复习资料(38)
- 2020-11-17【工学】2012年自考“互联网软件应用与开发”复习资料(41)
- 2020-11-17【工学】2012年自考“互联网及其应用”串讲笔记(1)
其他最新资讯
- 2023-12-29【自考政策】广西自考网络助学平台新增61门课程
- 2020-12-04【免考问题】哪些证书可以免考自考相关课程?
- 2020-12-04【免考问题】自考免考有哪些条件?
- 2020-12-04【综合问题】自考本科文凭有用吗?
- 2020-12-04【综合问题】自考本科需要考多少门课?
- 2020-11-17【综合问题】江苏省高等教育自学考试网上报名常见问题及解答
- 2020-11-17【经济学】2012年自考“中国税制”笔记串讲(8)
- 2020-11-17【自考政策】全国自考办领导:未来自考将大力发展网络助学
网友关注
- 【自考报名】南京玄武08年护理专业新生补报说明
- 【自考报名】河南08下半年市场营销资格证书报名通知
- 【自考报名】安徽省宿州09年1月自学考试报名通知
- 【自考报名】重庆市九龙坡区09年1月自考报名通知
- 【自考报名】安徽09年1月自考网上报名时间延长
- 【自考报名】北京08年下半年电子商务专业上机考试时间变更紧急通知
- 【自考报名】合肥09年1月自考中英合作专业报名须知
- 【自考报名】万州区09年1月自考报名通知
网友关注视频
- 苏科版数学 八年级下册 第八章第二节 可能性的大小
- 北师大版数学 四年级下册 第三单元 第二节 小数点搬家
- 北师大版数学四年级下册第三单元第四节街心广场
- 第五单元 民族艺术的瑰宝_15. 多姿多彩的民族服饰_第二课时(市一等奖)(岭南版六年级上册)_T129830
- 【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,江苏省
- 《空中课堂》二年级下册 数学第一单元第1课时
- 外研版英语七年级下册module3 unit2第一课时
- 河南省名校课堂七年级下册英语第一课(2020年2月10日)