额 我也是菜鸟,我觉得你这个程序只考虑到了数组等长的的时候的情况啊..
#include<stdio.h>
int main()
{
int m,n,i,j,f[1000],g[1000];
int num=0;
scanf("%d%d",&m,&n);
for (i=0; i<m; i++)
scanf("%d", &f[i]);
for (j=0; j<n; j++)
scanf("%d", &g[j]);
for(j=0;j<n;j++) //这一行你用的j<n作为循环条件,只有当相等的时候才会对 因为如果
n>m,应该会多比较n-m次。多比较时的对象比较的对象是数组g和数
组j中未定义的随机数。如果n<m则会少比较 同理。。
{
if(f[j]==g[j])
{num++;}
}
printf("%d\n",num);
return 0;
}
菜鸟个人见解 同样求高人指点