素华罗威 2018-11-29 15:16 采纳率: 0%
浏览 425

(C++)求解:交集部分无法输出

题目描述
输入两个集合,分别存放在两个数组中。如a={3,2,1,4,5};b={3,5,8,6,9};a和b的并集为c={1,2,3,4,5,6,8,9};a和b的交集为d={3,5};
(要求用指向数组元素的指针变量处理;编写void merge(int *pa,int *pb,int n,int m)函数,完成交集功能;编写void session(int *pa,int *pb,int n,int m) 函数,完成交集功能。)

输入
先输入n,表示集合a的元素个数;(1<=100)
输入集合a的n个元素值(为整数,无重复值);
输入m ,表示集合b的元素个数;(1<=100)
输入集合b的n个元素值(为整数,无重复值)。

输出
先按从小到大的顺序输出并集中的各元素值,占一行;
再按从小到大的顺序输出交集中的各元素值,占一行。

样例输入
4
4 3 2 1
5
4 2 1 7 10

样例输出
1 2 3 4 7 10
1 2 4
————————————————————————————————————
#include
void merge(int pa,int *pb,int n,int m)
{
int i,j,k,a[200],*p1,t;
p1=a;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(
(pa+i)==*(pb+j))
{
for(k=j+1;k m--;
break;
}
}
}
for(i=0;i for(i=n,j=0;i for(i=0;i {
for(j=i+1;j {
if(*(p1+i)>(p1+j)) t=(p1+i),*(p1+i)=*(p1+j),*(p1+j)=t;
}
}
for(i=0;i printf("\n");
}
void session(int *pc,int *pd,int n,int m)
{
int i,j,k=0,b[200],t,*p2;
p2=b;
for(i=0;i {
for(j=0;j {
if(*(pc+i)==*(pd+j))
{
*(p2+k)=*(pc+i);
k++;
break;
}
}
}
for(i=0;i {
for(j=i+1;j {
if(*(p2+i)>(p2+j)) t=(p2+i),*(p2+i)=*(p2+j),*(p2+j)=t;
}
}
for(i=0;i<k;i++) printf("%d ",*(p2+i));
}
int main()
{
int n,m,a[100],b[100],*pa,*pb,i;
pa=a;
pb=b;
scanf("%d",&n);
for(i=0;i<n;i++) scanf("%d",&a[i]);
scanf("%d",&m);
for(i=0;i<m;i++) scanf("%d",&b[i]);
merge(a,b,n,m);
session(a,b,n,m);
return 0;
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2018-11-29 15:52
    关注
     用</>格式化下代码,你的代码没有贴对
    for(i=0;i {
    for(j=i+1;j {
    这些都少了字符
    
    评论

报告相同问题?

悬赏问题

  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题