C语言萌新代码求助!!!!!
查看原帖
C语言萌新代码求助!!!!!
638857
blunecco楼主2022/3/13 23:14

貌似出不来循环了,每次都是输出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;
}
2022/3/13 23:14
加载中...