目前是输出ans,找到问题会改正,各位大佬帮我看看为什么输入都错就行了
#include <bits/stdc++.h>
using namespace std;
char a[100][100],n;
int ans=0;
string sd="yizhong";
void dfc(int i,int j,int n,int l)
{
if(l==1)
{
if(n==7)
{
ans++;
return ;
}
if(a[i+1][j]==sd[n])dfc(i+1,j,n+1,1);
return;
}
else if(l==2)
{
if(n==7)
{
ans++;
return ;
}
if(a[i-1][j]==sd[n])dfc(i-1,j,n+1,2);
return;
}
else if(l==3)
{
if(n==7)
{
ans++;
return ;
}
if(a[i][j+1]==sd[n])dfc(i,j+1,n+1,3);
return;
}
else
{
if(n==7)
{
ans++;
return ;
}
if(a[i][j-1]==sd[n])dfc(i,j-1,n+1,3);
return;
}
}
int main() {
cin>>n;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin>>a[i][j];
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(a[i][j]=='y')
{
if(a[i+6][j]<n)dfc(i+1,j,1,1);
if(a[i-6][j]>=0)dfc(i-1,j,1,2);
if(a[i][j+6]<n)dfc(i,j+1,1,3);
if(a[i][j-6]>=0)dfc(i,j-1,1,4);
}
}
}
cout<<ans;
return 0;
}