2 qq 23845475 qq_23845475 于 2014.12.18 18:03 提问

杭电2034,a - b ,哪里出错了求解;老是wa 。 我m=0与n=0都考虑过了
c

#include
#include
using namespace std;
int a[200] , b[200] , c[200];
int main()
{
int n , m;
while(~scanf("%d %d" , &n , &m)&&(n|m))
{
int i , j = m , k = 1 , f = 0;
for(i = 0 ; i < n ; i++)
scanf("%d" , a + i);
for(i = 0 ; i < m ; i++)
scanf("%d" , b + i);
for(i = 0 ; i < n ; i++)
{
k = 1;
for(j = 0 ; j < m ; j++)
{
if(a[i] == b[j])
break;

}
if(j == m)
{
c[f++] = a[i];
k = 0;
}
}
if(k == 0)
{
sort(c , c + f);
for(i = 0 ; i < f ; i++)
printf("%d " , c[i]);
putchar('\n');

}

if(k)
{
printf("NULL\n");

}

}
}

4个回答

k_zhou08
k_zhou08   2014.12.18 19:58

看程序没有语法错误。你得说报告的错误形式,编译不通过,还是运行数据与预期不符合

lx624909677
lx624909677   Ds   Rxr 2014.12.19 09:15

#include
#include
#include
int num1[105],num2[105],des[105],n,m;
int main( )
{
while( scanf( "%d%d",&n,&m ),n|m )
{
memset( des,0,sizeof( des ) );
for( int i = 0; i < n; ++i )
scanf( "%d",&num1[i] );
for( int j = 0; j < m; ++j )
scanf( "%d",&num2[j] );
for( int i = 0,f; i < n - 1;++i )//排序
{
f = 0;
for( int j = 1; j < n - i; ++j )
if( num1[j-1] > num1[j] )
num1[j-1] ^= num1[j] ^= num1[j-1] ^= num1[j],f = 1;
if( !f )
break;
}
for( int i = 0,f; i < m; ++i )//A-B
for( int j = 0; j < n; ++j )
if( num1[j] == num2[i] )
des[j] = 1;
int f = 0;
for( int i = 0; i < n; ++i )//输出
if( !des[i] )
{
printf( "%d ",num1[i] );
f = 1;
}
if( !f )//如果都没有
printf( "NULL" );
puts( "" );
}
return 0;
}

lx624909677
lx624909677   Ds   Rxr 2014.12.19 09:15

三个头文件分别是stdio.h stdlib.h和string.h

h398085541
h398085541   2014.12.21 22:38

#include 。。。。
杭电的啊,我也是呢

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!