c/c++ try的用法
求大侠给出try的具体用法(最好给出样例)多谢了!
其实主要是为测该程序是否爆栈来的:
#include<cstdio>//8个方向遍历图#include<cstring>#include<cstdlib>#define N 640000#define M 800#define MM 5120000using namespace std;typedef struct{ int x,y;}Q;char g[M][M];Q queue[MM];int rear,head,t,w,h;const int neg=-1,pos=1;void dfs(int x,int y){ if(g[x][y]=='.'){ t++; g[x][y]='*'; queue[++rear].x=x; queue[rear].y=y; while(head<rear){ x=queue[++head].x; y=queue[head].y; if(pos+y<w)dfs(x,pos+y);//right if(neg+y>-1)dfs(x,neg+y);//left if(neg+x>-1){//upward dfs(neg+x,y); if(neg+y>-1)dfs(neg+x,neg+y); if(pos+y<h)dfs(neg+x,pos+y); } if(pos+x<h){//downward dfs(pos+x,y); if(neg+y>-1)dfs(pos+x,neg+y); if(pos+y<w)dfs(pos+x,pos+y); } } }}int main(){ int i,j,max; while(scanf("%d %d",&w,&h)==2){ fflush(stdin); for(i=0;i<h;i++)gets(g[i]); rear=head=-1; for(t=max=i=0;i<h;i++) for(j=0;j<w;j++) if(g[i][j]=='.'){ dfs(i,j); if(t>max)max=t; t=0; } printf("%d\n",max); } return 0;}