|
针对每组数据输出一行数据,表示A-B的结果,如果结果为空集合,则输出“NULL”,否则从小到大输出结果,为了简化问题,每个元素后面跟一个空格.
#include<cstring>
#include<iostream>
using namespace std;
int main()
{
int n,m,i,j,k,count,min;
int a[100],b[100],c[100]={0},d[100];
while(cin>>n>>m)
{
count=0;
if(m==0&&n==0)
{
break;
}
else
{
for(i=0;i<n;i++)
{
cin>>a[i];
}
for(i=0;i<m;i++)
{
cin>>b[i];
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(a[i]==b[j])
{
c[i]=a[i];
}
}
}
k=0;
for(i=0;i<n;i++)
{
if(a[i]==c[i])
{
count++;
}
else
{
d[k]=a[i];
k++;
}
}
if(count==n)
{
cout<<"NULL";
}
else
{
for(i=0;i<k;i++)
{
for(j=0;j<k-i-1;j++)
{
if(d[j]>d[j+1])
{
min=d[j];
d[j]=d[j+1];
d[j+1]=min;
}
}
}
for(i=0;i<k;i++)
{
cout<<d[i]<<" ";
}
}
cout<<endl;
}
memset(a,0,100);
memset(b,0,100);
memset(c,0,100);
memset(d,0,100);
}
return 0;
}
1.利用memset来重置数组并添加头文件.
2.利用新数组来储存原数组部分元素.
3.由于数字未限制于0~9,无法用字符数组来代替int数组.
4.看清题目.
|
---|