求杭电ACM大神帮我看看2034题的这个代码啊 总是WA啊

2024-11-30 01:42:24
推荐回答(2个)
回答1:

错误之处在于,如果第二个集合为空的话,你的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 cin>>a[i];
for(i=0;i cin>>b[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"< else
{
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 cout< cout< }
}
return 0;
}

回答2:

while(cin>>n>>m&&(n||m))//这里都已经错了,题目说是n和m都等于0;
好像就这里错了吧,下面好像都没什么问题。我刚AC了,如果你要的话,我代码发给你。