满意答案
skybeyon
2013.11.16
采纳率:55% 等级:11
已帮助:6770人
【解题思路】
这题有两个条件,一是要A-B,这个可以用个标记,而是要排序,个人觉得先排序,再去A-B好做些.代码如下
【注】望采纳哦~ 有问题欢迎再问哦~ o(∩_∩)o
【源代码】
#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;
}
00分享举报