版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CSDN___CSDN/article/details/84337128
开了三个数组
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <set>
#include <algorithm>
using namespace std;
const int maxn = 105;
int a[maxn],b[maxn],c[maxn];
int main ()
{
int n,m,i,j,flag,count=0,k;
while(scanf("%d%d",&n,&m)==2)
{
if(n==0 && m==0) return 0;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
count=0;k=0;
for(i=0;i<n;i++) scanf("%d",&a[i]);
for(i=0;i<m;i++) scanf("%d",&b[i]);
for(i=0;i<n;i++)
{
flag=1;
for(j=0;j<m;j++)
{
if(a[i]==b[j])
{
flag=0;
count++;
break;
}
}
if(flag)
{
c[k++]=a[i];
}
}
if(count==n)
{
printf("NULL");
}
if(k!=0)
{
sort(c,c+k);
for(i=0;i<k;i++)
printf("%d ",c[i]);
}
printf("\n");
}
return 0;
}
开了两个数组
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <set>
#include <algorithm>
using namespace std;
const int maxn = 105;
int a[maxn],b[maxn];
int main ()
{
int n,m,i,j,flag,count=0,k;
while(scanf("%d%d",&n,&m)==2)
{
if(n==0 && m==0) return 0;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
count=0;k=0;
for(i=0;i<n;i++) scanf("%d",&a[i]);
for(i=0;i<m;i++) scanf("%d",&b[i]);
sort(a,a+n);
for(i=0;i<n;i++)
{
flag=1;
for(j=0;j<m;j++)
{
if(a[i]==b[j])
{
flag=0;
count++;
break;
}
}
if(flag)
{
printf("%d ",a[i]);
}
}
if(count==n)
{
printf("NULL");
}
printf("\n");
}
return 0;
}