杭电2034.哪个大侠愿意看看丫。灰常感谢
杭电2034
#include<stdio.h>
int main()
{
int m,n,i,j,k=0,c[100];
while(scanf("%d%d",&m,&m)!=EOF)
{
if(m==0||n==0)
{
printf("NULL\n");
break;
}
else
{
k=0;
int a[100],b[100];
for(i=0;i<m;i++)
scanf("%d",&a[i]);
for(j=0;j<n;j++)
scanf("%d",&b[j]);
if(m<=n)
{
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(a[i]!=b[j])
c[k]=a[i];
k++;
}
}
if(k==0)
printf("NULL\n");
else
{
for(i=0;i<k-1;i++)
printf("%d ",c[i]);
printf("%d\n",c[i]);
}
}
else
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
if(a[i]!=b[j])
{
c[k]=a[i];
k++;
}
}
if(k==0)
printf("NULL\n");
else
{
for(i=0;i<k;i++)
printf("%d ",c[i]);
for(i=n;i<m;i++)
printf("%d ",a[i]);
printf("%d\n",a[i]);
}
}
}
}
return 0;
}
[解决办法]
排序 然后简单的匹配就行啦
[解决办法]
- C/C++ code
#include <stdio.h>#include <string.h>#include <stdlib.h>int cmp(const void *pa,const void *pb){ return *(int *)pa - *(int *)pb;}int main(){ int n,m,a[101],b[101],i,j,sum; while (scanf("%d%d",&m,&n) && m+n) { bool foot[101] = {0}; for(i = 0;i<m;scanf("%d",&a[i++])); for(j = 0;j<n;scanf("%d",&b[j++])); for(i = 0;i<m;i++) for(j = 0;j<n;j++) if(a[i] == b[j]) { foot[i] = true; break; } bool flag = false; for(sum = 0,i = 0;i<m;i++) if(!foot[i]) { a[sum++] = a[i]; if(!flag){flag = true;} } qsort(a,sum,4,cmp); for(i = 0;i<sum;printf("%d ",a[i++])); flag?printf("\n"):printf("NULL\n"); } return 0;}
[解决办法]
#include<iostream>
using namespace std;
int cmp(const void *a,const void *b)
{
return (*(int *)a - *(int *)b);
}
int main()
{
int n,m,a[100],b[100],c[100],i,j,k,t;
while(cin>>n>>m && m!=0 || n!=0)
{
t=0;
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<m;i++)
cin>>b[i];
for(i=0;i<n;i++)
{
k=0;
for(j=0;j<m;j++)
if(a[i]==b[j])
{
k=1;
break;
}
if(k==0)
{
c[t]=a[i];
t++;
}
}
qsort(c,t,sizeof(c[0]),cmp);
if(t!=0)
{
for(i=0;i<t;i++)
cout<<c[i]<<" ";
cout<<endl;
}
else
cout<<"NULL"<<endl;
}
return 0;
}
好久没去acm咯
[解决办法]
while(scanf("%d%d",&m,&n)!=EOF)//改while(scanf("%d%d",&m,&m)!=EOF)
{
if(m==0||n==0)
{
//删除printf("NULL\n");
break;
}
以上改的只是2个小错误.LZ还要修改算法.