这是第一道做出来的填空题,终于没遗漏的情况了,
#include<iostream> #include<cstring> #include<algorithm> using namespace std ; const int N = 510 ; char mp[N][N] ; bool v[N][N] ; char a[] = {"LANQIAO"} ; int ans ; int d[8][2] = {{0,1},{0,-1},{1,0},{-1,0},{1,1},{-1,1},{-1,-1},{1,-1}}; int main(){ for(int i = 0 ; i < 100 ; i ++) cin >> mp[i] ; for(int i = 0 ; i < 100 ; i ++){ for(int j = 0 ; j < 100; j ++){ //找每一个字符,是L就进入判断 if(mp[i][j] == 'L'){ for(int k = 0 ; k < 8 ; k ++){一共有八个方向 int tx = i,ty = j ; for(int w = 1 ; w <= 6 ; w ++){//每走一步就进行一次判断 tx += d[k][0] ; ty += d[k][1] ; if(a[w] == mp[tx][ty]) { if(w == 6) ans ++ ; }else break ; } } } } } cout << ans << endl ; }