哪个大佬帮忙看一下,下载的第一个数据点明明是对的,为什么判错
#include <ctype.h>
#include<stdio.h>
#include<stdlib.h>
#include <math.h>
#include<string.h>
char dl[105][105];
int ans=0;
int main()
{
int n,m;
scanf("%d %d",&n,&m);
int i,j,x,y;
for(i=1;i<=n;i++)
{
scanf("%s",&dl[i]);
}
for(i=0;i<=n;i++)
for(j=0;j<=m;j++)
{
ans=0;
if(dl[i][j]=='*')
{
printf("*");
continue;
}
else if(dl[i][j]=='?')
{
if(dl[i-1][j-1]=='*')
ans++;
if(dl[i-1][j]=='*')
ans++;
if(dl[i-1][j+1]=='*')
ans++;
if(dl[i][j-1]=='*')
ans++;
if(dl[i][j+1]=='*')
ans++;
if(dl[i+1][j-1]=='*')
ans++;
if(dl[i+1][j]=='*')
ans++;
if(dl[i+1][j+1]=='*')
ans++;
printf("%d",ans);
}
if(j==m)
printf("\n");
}
return 0;
}