貌似出不来循环了,每次都是输出0,我找了半天照不出来错误了,求助!!!
#include<stdio.h>
#include<stdlib.h>
void fun(int *p1,int *p2,int *p3,char b[12][12]){
if(*p3==0&&b[*p1][*p2-1]=='*') *p3+=1;
else if(*p3==1&&b[*p1+1][*p2]=='*') *p3+=1;
else if(*p3==2&&b[*p1][*p2+1]=='*') *p3+=1;
else if(*p3==3&&b[*p1-1][*p2]=='*') *p3=0;
else if(*p3==0) *p2-=1;
else if(*p3==1) *p1+=1;
else if(*p3==2) *p2+=1;
else if(*p3==3) *p1-=1;
}
int main(){
char a[12][12];
int i,j,f[3],c[3],t;
t=0;
f[2]=0;
c[2]=0;
for(i=0;i<12;i++){
a[0][i]='*';
a[11][i]='*';
a[i][11]='*';
a[i][0]='*';
}
for(i=1;i<11;i++){
for(j=1;j<11;j++){
scanf("%c",&a[i][j]);
if(a[i][j]=='F'){
f[0]=i;f[1]=j;
}
else if(a[i][j]=='C'){
c[0]=i;c[1]=j;
}
}
getchar();
}
while(!(f[0]==c[0]&&f[1]==c[1])){
fun(&f[0],&f[1],&f[2],a);
fun(&c[0],&c[1],&c[2],a);
if(t>200000){
printf("0");
return 0;
}
t++;
}
printf("%d",t);
return 0;
}