呵呵,很簡單吧?
如果n=0並且m=0表示輸入的結束,不做處理。
#include <stdio.h>
main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF && (n!=0 || m!=0))
{
int t,i,j,k=0,flag,a[101],b[101],c[101];
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++)
{
flag=0;
for(j=0;j<m;j++)
if(a[i]!=b[j]) //比較
flag++;
if(flag==m) //a中有b中沒有的放入c
{
c[k]=a[i];
k++;
}
}
if(!k)
printf("NULL");
else
{
for(i=0;i<k-1;i++)
for(j=1;j<k-i;j++)
if(c[j-1]>c[j])
{
t=c[j-1];
c[j-1]=c[j];
c[j]=t;
}
for(i=0;i<k;i++)
printf("%d ",c[i]);
}
printf("\n");
}
}