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

#include<iostream>usingnamespacestd;intmain(){intn,m,a[100],b[100],c[100],i,j,N,k,x,t... #include<iostream>
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<n;i++)
cin>>a[i];
for(i=0;i<m;i++)
cin>>b[i];
N=n;
k=0;

for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
x=a[i]-b[j];
if(x==0)
{
N--;
break;
}
}
if(x!=0)
{
c[k]=a[i];
k++;
}
}

if(N==0)
cout<<"NULL"<<endl;
else
{
for(i=0;i<k;i++)
{
for(j=0;j<k-i-1;j++)
{
if(c[j]>c[j+1])
{
t=c[j];
c[j]=c[j+1];
c[j+1]=t;
}
}
}

for(i=0;i<k;i++)
cout<<c[i]<<" ";

cout<<endl;
}
}
}
展开
 我来答
zxk1004
2012-04-23 · 超过24用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:60.1万
展开全部
错误之处在于,如果第二个集合为空的话,你的x是没有初值的;假设恰巧算完上组测试数据后x的值为0,那么这组数据如果第二个集合为空的话,你的结果将是什么也不输出,只一个空行,对吧?加一条语句改成下面这样就可以AC了,楼上说的while(cin>>n>>m&&(n||m))错误,显然是没理解题意。另外提个建议,main函数都int了,麻烦给个整型返回值呗,呵呵
#include<iostream>
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<n;i++)
cin>>a[i];
for(i=0;i<m;i++)
cin>>b[i];
N=n;
k=0;
for(i=0;i<n;i++)
{
x=1; //给x一个非零初值
for(j=0;j<m;j++)
{
x=a[i]-b[j];
if(x==0)
{
N--;
break;
}
}
if(x!=0)
{
c[k]=a[i];
k++;
}
}
if(N==0)
cout<<"NULL"<<endl;
else
{
for(i=0;i<k;i++)
{
for(j=0;j<k-i-1;j++)
{
if(c[j]>c[j+1])
{
t=c[j];
c[j]=c[j+1];
c[j+1]=t;
}
}
}
for(i=0;i<k;i++)
cout<<c[i]<<" ";
cout<<endl;
}
}
return 0;
}
C加语言初学者
2012-04-20 · TA获得超过278个赞
知道答主
回答量:219
采纳率:0%
帮助的人:201万
展开全部
while(cin>>n>>m&&(n||m))//这里都已经错了,题目说是n和m都等于0;
好像就这里错了吧,下面好像都没什么问题。我刚AC了,如果你要的话,我代码发给你。
更多追问追答
追问
while那里是可以的啊      答案输出都是正确的   不过就是WA
追答
。。。还真看不出,到底哪里出错了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式