开发者社区> 问答> 正文

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

#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");

}

}
}

展开
收起
a123456678 2016-03-20 09:46:36 1840 0
1 条回答
写回答
取消 提交回答
  • #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;
    }
    
    
    2019-07-17 19:08:40
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载