求杭电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;
}
}
} 展开
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;
}
}
} 展开
2个回答
展开全部
错误之处在于,如果第二个集合为空的话,你的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;
}
#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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询