| ||||||||||
| 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:请高手看看为什么是runtime error在vc6.0里运行正确In Reply To:请高手看看为什么是runtime error在vc6.0里运行正确 Posted by:ahui at 2006-07-21 16:16:23 > #include<iostream.h>
> int Max=0;
> #define MAX 10000
> struct node
> {
> int i;
> int j;
> int qz;
> int h;
> node * sp;
> node *zp;
> node *yp;
> node *xp;
> };
> struct px1
> {
> int h;
> int i;
> int j;
> };
> void px(px1 node[],int low,int high);
> int main(void)
> {
> int row,col,i,j;
> node *mon;
> px1 *temp;
> cin>>row>>col;
> mon=new node [row*col+1];
> temp=new px1 [row*col+1];
> for(i=0;i<row;i++)
> for(j=1;j<(col+1);j++)
> {
> temp[i*col+j].i=mon[i*col+j].i=i+1;
> temp[i*col+j].j=mon[i*col+j].j=j;
> cin>>mon[i*col+j].h;
> mon[i*col+j].qz=0;
> temp[i*col+j].h=mon[i*col+j].h;
> if(i==0)
> mon[i*col+j].sp=NULL;
> else
> mon[i*col+j].sp=&mon[(i-1)*col+j];
> if(i==(row-1))
> mon[i*col+j].xp=NULL;
> else
> mon[i*col+j].xp=&mon[(i+1)*col+j];
> if(j==0)
> mon[i*col+j].zp=NULL;
> else
> mon[i*col+j].zp=&mon[i*col+j-1];
> if(j==col)
> mon[i*col+j].yp=NULL;
> else
> mon[i*col+j].yp=&mon[i*col+j+1];
> }
> px(temp,1,row*col);
> for(i=1;i<=row*col;i++)
> {
> int tz=1;//可能是这段代码的问题请高手帮忙仔细看看
> if(mon[(temp[i].i-1)*col+temp[i].j].sp!=NULL&&mon[(temp[i].i-1)*col+temp[i].j].sp->h<mon[(temp[i].i-1)*col+temp[i].j].h)
> tz=mon[(temp[i].i-1)*row+temp[i].j].sp->qz+1;
> if(mon[(temp[i].i-1)*col+temp[i].j].zp!=NULL&&mon[(temp[i].i-1)*col+temp[i].j].zp->h<mon[(temp[i].i-1)*col+temp[i].j].h)
> {
> if(mon[(temp[i].i-1)*col+temp[i].j].zp->qz>tz-1)
> tz=mon[(temp[i].i-1)*col+temp[i].j].zp->qz+1;
> }
> if(mon[(temp[i].i-1)*col+temp[i].j].yp!=NULL&&mon[(temp[i].i-1)*col+temp[i].j].yp->h<mon[(temp[i].i-1)*col+temp[i].j].h)
> {
> if(mon[(temp[i].i-1)*col+temp[i].j].yp->qz>tz-1)
> tz=mon[(temp[i].i-1)*col+temp[i].j].yp->qz+1;
> }
> if(mon[(temp[i].i-1)*col+temp[i].j].xp!=NULL&&mon[(temp[i].i-1)*col+temp[i].j].xp->h<mon[(temp[i].i-1)*col+temp[i].j].h)
> {
> if(mon[(temp[i].i-1)*col+temp[i].j].xp->qz>tz-1)
> tz=mon[(temp[i].i-1)*col+temp[i].j].xp->qz+1;
> }
> mon[(temp[i].i-1)*col+temp[i].j].qz=tz;
> if(mon[(temp[i].i-1)*col+temp[i].j].qz>Max)
> Max=mon[(temp[i].i-1)*col+temp[i].j].qz;
> }
> cout<<Max<<endl;
>
> return 0;
> }
> void px(px1 node[],int low,int high)
> {
> int i,j;
> px1 pivot;
>
> if(low<high)
> {
> pivot = node[low];
> i=low;
> j=high;
> while(i<j)
> {
> while(i<j&&node[j].h>=pivot.h)
> j=j-1;
> if(i<j)
> {
> node[i]=node[j];
> i=i+1;
> }
> while(i<j&&node[i].h<=pivot.h)
> i=i+1;
> if(i<j)
> {
> node[j]=node[i];
> j=j-1;
> }
> }
> node[i]=pivot;
> px(node,low,i-1);
> px(node,i+1,high);
> }
> // return;
> }
>
>
>
>
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator