错误之处在于,如果第二个集合为空的话,你的x是没有初值的;假设恰巧算完上组测试数据后x的值为0,那么这组数据如果第二个集合为空的话,你的结果将是什么也不输出,只一个空行,对吧?加一条语句改成下面这样就可以AC了,楼上说的while(cin>>n>>m&&(n||m))错误,显然是没理解题意。另外提个建议,main函数都int了,麻烦给个整型返回值呗,呵呵
#include
using namespace std;
int main()
{
int n,m,a[100],b[100],c[100],i,j,N,k,x,t;
while(cin>>n>>m&&(n||m))
{
for(i=0;i
for(i=0;i
N=n;
k=0;
for(i=0;i
x=1; //给x一个非零初值
for(j=0;j
x=a[i]-b[j];
if(x==0)
{
N--;
break;
}
}
if(x!=0)
{
c[k]=a[i];
k++;
}
}
if(N==0)
cout<<"NULL"<
{
for(i=0;i
for(j=0;j
if(c[j]>c[j+1])
{
t=c[j];
c[j]=c[j+1];
c[j+1]=t;
}
}
}
for(i=0;i
}
return 0;
}
while(cin>>n>>m&&(n||m))//这里都已经错了,题目说是n和m都等于0;
好像就这里错了吧,下面好像都没什么问题。我刚AC了,如果你要的话,我代码发给你。