Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:过了的大神可以帮我看下我的代码,为什么不行吗?In Reply To:Re:过了的大神可以帮我看下我的代码,为什么不行吗? Posted by:13975 at 2015-07-17 12:21:46 > #include<stdio.h> > char data[20][20]; > int flag[20][20],lineflag,n,m; > void vervisit(int j,int k) > { > if(j-1>=0&&(data[j-1][k]=='|')&&!flag[j-1][k]) > { > > flag[j-1][k]=1; > vervisit(j-1,k); > } > > if(j+1<n&&(data[j+1][k]=='|')&&!flag[j+1][k]) > { > > flag[j+1][k]=1; > vervisit(j+1,k); > } > } > void horvisit(int j,int k) > { > if(k+1<m&&data[j][k+1]=='-'&&!flag[j][k+1]) > { > > flag[j][k+1]=1; > horvisit(j,k+1); > } > if(k-1>=0&&data[j][k-1]=='-'&&!flag[j][k-1]) > { > > flag[j][k-1]=1; > horvisit(j,k-1); > } > } > void pievisit(int j,int k) > { > if((k+1<m)&&(j+1<n)&&(data[j+1][k+1]=='\\')&&!(flag[j+1][k+1])) > { > > flag[j+1][k+1]=1; > pievisit(j+1,k+1); > } > if((k-1>=0)&&(j-1>=0)&&(data[j-1][k-1]=='\\')&&!(flag[j-1][k-1])) > { > > flag[j-1][k-1]=1; > pievisit(j-1,k-1); > } > } > void navisit(int j,int k) > { > > if((k+1<m)&&(j-1>=0)&&(data[j-1][k+1]=='/')&&!(flag[j-1][k+1])) > { > > > flag[j-1][k+1]=1; > navisit(j-1,k+1); > } > if((k-1>=0)&&(j+1<n)&&(data[j+1][k-1]=='/')&&!(flag[j+1][k-1])) > { > > > flag[j+1][k-1]=1; > navisit(j+1,k-1); > } > } > int main() > { > int t,i,j,k; > scanf("%d",&t); > for (i=0;i<t;i++) > { > lineflag=0; > > scanf("%d %d ",&n,&m); > for(j=0;j<n;j++) > { > > scanf("%s",data[j]); > > } > for(j=0;j<n;j++) > { > for(k=0;k<m;k++) > { > if(!(flag[j][k])&&data[j][k]=='-') > { > > flag[j][k]=1; > horvisit(j,k); //把相关点置1,下面的遍历作用相同 > lineflag++; > continue; > } > if(!(flag[j][k])&&data[j][k]=='|') > { > > flag[j][k]=1; > vervisit(j,k); > lineflag++; > continue; > } > if(!(flag[j][k])&&data[j][k]=='\\') > { > > flag[j][k]=1; > pievisit(j,k); > lineflag++; > continue; > } > if(!(flag[j][k])&&data[j][k]=='/') > { > > flag[j][k]=1; > navisit(j,k); > lineflag++; > continue; > } > } > } > > if(lineflag==1) > { > printf("CORRECT\n"); > } > else > { > printf("INCORRECT\n"); > } > > } > return 0; > } flag数组没置零。 Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator