如何在两个数组中找出共有元素

给定两个整型数组,编程设计找出是两者共有的元素。输入格式:输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。输出格式:如果能找出两者共有的元素,直接输出共有元素,其间以空格分隔,如果不能找出,则输出NULL

分别扫描两个数组中元素是否在另一个数组中

#include <stdio.h>
int main()
{
    int m,n,i,j,t=0,k;
    int a[20],b[20];
    scanf("%d",&m);
    for(i=0;i<m;i++)
        scanf("%d",&a[i]);
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&b[i]);
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
        {
             if(a[i] == b[j])
                break;
        }
        if(j<n)
        {
              printf("%d ",a[i]);
              t = 1;
              for(k=j;k<n-1;k++)
                  b[k] = b[k+1];
              for(k=i;k<m-1;k++)
                  a[k] = a[k+1];
              n--;
              m--;
              i--;
        }
    }
    if(t==0)
        printf("NULL");
    return 0;
}