两个数组元素对比没有正确输出结果

感觉自己程序没有问题,但是没有正确输出结果。
希望有人可以告诉我是怎么错的,不要只给我一个正确程序,我想在这个过程中提高能力,谢谢啦~
我自己写的程序和题目已经附图

img

img

img

#include<stdio.h>
main()
{
     int a[20],b[20],c[40];
     int i,j,k=0,m,cnt1,cnt2,cnt,number;     //cnt1为第一个数组元素个数,cnt2为第二个数组元素个数
     printf("请输入第一个数组的元素个数:");
     scanf("%d",&cnt1);
     printf ("请输入第一个数组:");
     for(i=0;i<cnt1;i++)
       scanf("%d",&a[i]);
     printf("请输入第二个数组的元数个数");
     scanf("%d",&cnt2);
     printf ("请输入第二个数组:");
     for(j=0;j<cnt2;j++)
       scanf("%d",&b[i]);     //数据输入完成
     for(i=0;i<cnt1;i++)
     {
       cnt=0;
       for(j=0;j<cnt2;j++)
          if(a[i]==b[j]) cnt++;
       if(cnt==0) 
       {
         c[k]=a[i];
         k++;
       }
     }     //找出第一个数组中需要打印的元素存放在数组c[40]中
     for(j=0;j<cnt2;j++)
     {
       number=0;
       for(i=0;i<cnt1;i++)
         if(b[j]==a[i])  number++;
       if(number==0)  
       {
         c[k]=b[j];
         k++;
       }
     }     //找出第二个数组中需要打印的元素存放在数组c[40]中
     printf("不是共同的元素有:");
     print("%d",c[0]);
     for(m=1;m<k;m++)
     {
       for(i=0;i<m;i++)
       {
         cnt=0;
         if(c[m]==c[i]) cnt++;
       }
       if(cnt==0) printf("%d",c[m]);
     }
}

想让人好好看代码也别贴图,把代码黏贴上来啊

修改如下

#include<stdio.h>
main()
{
    int a[20],b[20],c[40];
    int i,j,k=0,m,cnt1,cnt2,cnt,number;     //cnt1为第一个数组元素个数,cnt2为第二个数组元素个数
    printf("请输入第一个数组的元素个数:");
    scanf("%d",&cnt1);
    printf ("请输入第一个数组:");
    for(i=0; i<cnt1; i++)
        scanf("%d",&a[i]);
    printf("请输入第二个数组的元数个数");
    scanf("%d",&cnt2);
    printf ("请输入第二个数组:");
    for(j=0; j<cnt2; j++)
        scanf("%d",&b[j]);     //数据输入完成
    for(i=0; i<cnt1; i++)
    {
        cnt=0;
        for(j=0; j<cnt2; j++)
            if(a[i]==b[j]) cnt++;
        if(cnt==0)
        {
            c[k]=a[i];
            k++;
        }
    }     //找出第一个数组中需要打印的元素存放在数组c[40]中
    for(j=0; j<cnt2; j++)
    {
        number=0;
        for(i=0; i<cnt1; i++)
            if(b[j]==a[i])  number++;
        if(number==0)
        {
            c[k]=b[j];
            k++;
        }
    }    //找出第二个数组中需要打印的元素存放在数组c[40]中
    printf("不是共同的元素有:");
    for(m=0; m<k; m++)
        printf("%d ",c[m]);
}