这是我原来的代码,用getchar去接收换行符的,本地是全都正确的,但是提交和在线ide都全是‘*’,
#include <stdio.h>
char a[105][105] ,string[] = "yizhong",ch;
int isexist[105][105];
int dir[8][2]= {-1,-1,-1,0,-1,1,0,1,1,1,1,0,1,-1,0,-1};
void dfs(int x ,int y ,int direction)
{
int i =x ,j =y ,k;
for(k = 0; k <7 ;k++){
if(string[k] != a[i][j]){
return;
}else{
i+=dir[direction][0];
j+=dir[direction][1];
}
}
for(i = 0 ;i < 7 ;i++){
isexist[x][y]++;
x+=dir[direction][0];
y+=dir[direction][1];
}
}
int main(void)
{
int n ,p ,q,t;
scanf("%d" ,&n);
for(p = 0; p < n ;p++){
getchar();
for(q= 0 ;q< n ;q++){
scanf("%c" ,&a[p][q]);
}
}
for(p = 0 ;p < n;p++){
for(q = 0 ;q < n ;q++){
if(a[p][q]=='y'){
for(t = 0 ;t < 8;t++){
dfs(p,q,t);
}
}
}
}
for(p = 0 ;p < n ;p++){
for(q = 0 ;q < n ;q++){
if(isexist[p][q]==0){
printf("*");
}else{
printf("%c" ,a[p][q]);
}
}
printf("\n");
}
return 0;
}
调试了好久,绝望!给遇到相同的问题的uu一个解决办法参考: 用scanf('\n')去接收换行符,然后就ac了