统计二进制文件中某个ASCII码的个数

提交给系统后,显示答案错误,我这边运行结果正确

#include <stdio.h>
#include<conio.h>
void main()
{
    FILE  *in,*out;
    int a[100];
    int b,n=0,cnt=0,i;
    int *p;
    p=a;

    in=fopen("a.dat","rb");
    out=fopen("b.txt","wb");
    while (fscanf(in,"%x",p++)!=EOF)
    {
        n++;
    }
    scanf("%x",&b);

    for (i=0;i<n;i++)
    {
        if(b==a[i])
        {
            cnt++;
        }
    }
    fprintf(out,"%d",cnt);
    printf("%d\n",cnt);

    fclose(out);
    fclose(in);
    out=NULL;
    in=NULL;

    system("pause");
    return 0;
}

图片说明
题目要求如下图片说明

在题目中说,输出应该放到"b.txt"中,但是看你这边两行代码,可以知道,你往"b.txt"中输出的格式是"%d",并不是他想要的"%d\n"。
并且这边"printf"的那一行根本不需要。你只要改了在文件中输出的格式,并且不要在编译器里输出,我觉得应该就解决了。

 fprintf(out,"%d",cnt);
 printf("%d\n",cnt);