c++-求大神加注释,小弟看不懂

问题描述

求大神加注释,小弟看不懂
int main()
{
cout<<""-----迷宫-----""< maze m;
return 0;
}
maze::maze()
{
int ij;
cout cin>>Height>>Width;
a = new int*[Height];
for(i = 0;i != Height;i++)
{
a[i] = new int[Width];
}
rd = new Road*[Height*Width];
Road *temp = new Road[Height*Width];
cout<<""请输入迷宫矩阵:"";
cout<<endl;
for(i = 0;i != Height;i++)
{
for(j = 0;j != Width;j++)
{

        cin>>a[i][j];        rd[(j+1)+i*Width-1] = &temp[(j+1)+i*Width-1];        rd[(j+1)+i*Width-1]->state = a[i][j];        rd[(j+1)+i*Width-1]->num = (j+1)+i*Width-1;        //cout<<rd[(j+1)+i*n-1]->state;    }}for(i = 0;i != Height;i++){    for(j = 0;j != Width;j++)    {        if(i == 0)        {            if(j == 0)            {                rd[(j+1)+i*Width-1]->N = NULL;                rd[(j+1)+i*Width-1]->S = rd[(j+1)+(i+1)*Width-1];                rd[(j+1)+i*Width-1]->W = NULL;                rd[(j+1)+i*Width-1]->E = rd[(j+1+1)+i*Width-1];            }            else if(j == Width-1)            {                rd[(j+1)+i*Width-1]->N = NULL;                rd[(j+1)+i*Width-1]->S = rd[(j+1)+(i+1)*Width-1];                rd[(j+1)+i*Width-1]->W = rd[(j-1+1)+i*Width-1];                rd[(j+1)+i*Width-1]->E = NULL;            }            else            {                rd[(j+1)+i*Width-1]->N = NULL;                rd[(j+1)+i*Width-1]->S = rd[(j+1)+(i+1)*Width-1];                rd[(j+1)+i*Width-1]->W = rd[(j-1+1)+i*Width-1];                rd[(j+1)+i*Width-1]->E = rd[(j+1+1)+i*Width-1];            }        }        else if(i == (Height-1))        {            if(j == 0)            {                rd[(j+1)+i*Width-1]->N = rd[(j+1)+(i-1)*Width-1];                rd[(j+1)+i*Width-1]->S = NULL;                rd[(j+1)+i*Width-1]->W = NULL;                rd[(j+1)+i*Width-1]->E = rd[(j+1+1)+i*Width-1];            }            else if(j == Width-1)            {                rd[(j+1)+i*Width-1]->N = rd[(j+1)+(i-1)*Width-1];                rd[(j+1)+i*Width-1]->S = NULL;                rd[(j+1)+i*Width-1]->W = rd[(j-1+1)+i*Width-1];                rd[(j+1)+i*Width-1]->E = NULL;            }            else            {                rd[(j+1)+i*Width-1]->N = rd[(j+1)+(i-1)*Width-1];                rd[(j+1)+i*Width-1]->S = NULL;                rd[(j+1)+i*Width-1]->W = rd[(j-1+1)+i*Width-1];                rd[(j+1)+i*Width-1]->E = rd[(j+1+1)+i*Width-1];            }        }        else        {            if(j == 0)            {                rd[(j+1)+i*Width-1]->N = rd[(j+1)+(i-1)*Width-1];                rd[(j+1)+i*Width-1]->S = rd[(j+1)+(i+1)*Width-1];                rd[(j+1)+i*Width-1]->W = NULL;                rd[(j+1)+i*Width-1]->E = rd[(j+1+1)+i*Width-1];            }            else if(j == Width-1)            {                rd[(j+1)+i*Width-1]->N = rd[(j+1)+(i-1)*Width-1];                rd[(j+1)+i*Width-1]->S = rd[(j+1)+(i+1)*Width-1];                rd[(j+1)+i*Width-1]->W = rd[(j-1+1)+i*Width-1];                rd[(j+1)+i*Width-1]->E = NULL;            }            else            {                rd[(j+1)+i*Width-1]->N = rd[(j+1)+(i-1)*Width-1];                rd[(j+1)+i*Width-1]->S = rd[(j+1)+(i+1)*Width-1];                rd[(j+1)+i*Width-1]->W = rd[(j-1+1)+i*Width-1];                rd[(j+1)+i*Width-1]->E = rd[(j+1+1)+i*Width-1];            }        }    }}cout<<""迷宫矩阵:""<<endl;for(i = 0;i != Height;i++){    for(j = 0;j != Width;j++)    {        cout<<a[i][j]<<""t"";    }    cout<<endl;}cout<<endl;cout<<""迷宫节点序号矩阵:""<<endl;for(i = 0;i != Height;i++){    for(j = 0;j != Width;j++)    {        cout<<rd[(j+1)+i*Width-1]->num<<""t"";    }    cout<<endl;}cout<<endl;cout<<""请输入入口序号:"";cin>>innum;cout<<""请输入出口序号:"";cin>>outnum;if(rd[innum]->state == 0){    if(getout(rd[innum]->num)>0)    {        cout<<rd[innum]->num<<""<--进入""<<endl;    }    else    {        cout<<""没有出口!""<<endl;    }}else{    cout<<""没有此入口!""<<endl;}

}
int maze::getout(int num) //shendu
{
rd[num]->flog = 1;
if(num == outnum)
{
cout<<""出口<--"";
return 1;
}
else if(rd[num]->N != NULL && rd[num]->N->state == 0 && rd[num]->N->flog != 1 && getout(rd[num]->N->num)>0)
{
cout<N->num<<""<--"";
return rd[num]->N->num;
}
else if(rd[num]->S != NULL && rd[num]->S->state == 0 && rd[num]->S->flog != 1 && getout(rd[num]->S->num)>0)
{
cout<S->num<<""<--"";
return rd[num]->S->num;
}
else if(rd[num]->W != NULL && rd[num]->W->state == 0 && rd[num]->W->flog != 1 && getout(rd[num]->W->num)>0)
{
cout<W->num<<""<--"";
return rd[num]->W->num;
}
else if(rd[num]->E != NULL && rd[num]->E->state == 0 && rd[num]->E->flog != 1 && getout(rd[num]->E->num)>0)
{
cout<E->num<<""<--"";
return rd[num]->E->num;
}
else
{
return -1;
}
}

解决方案

你这是指望着别人为您做什么?

时间: 2025-01-29 20:33:13

c++-求大神加注释,小弟看不懂的相关文章

c++-一段代码,迷宫问题,求大神加注释

问题描述 一段代码,迷宫问题,求大神加注释 5C maze::maze(){ int ij; cout<<""请输入迷宫规模,长.宽,以空格隔开:""; cin>>Height>>Width; a = new int*[Height]; for(i = 0;i != Height;i++) { a[i] = new int[Width]; } rd = new Road*[Height*Width]; Road *temp = n

namespace-求大神 jaxa2怎么理解 看不懂

问题描述 求大神 jaxa2怎么理解 看不懂 Axis2开发WebService客户端 QName qname = new QName(namespace, "getPrice"); namespace命名空间,getprice怎么理解? 解决方案 getPrice是web service的服务名,相当于方法名,namespace是命名空间,用于区分不同的主机的服务,一般类似域名.

c语言-求大神帮忙注释,非常感谢

问题描述 求大神帮忙注释,非常感谢 #include int sushu(int n) { for(int i=2;i<n;i++) if(n%i==0) return 0; return 1; } int main() { int n; scanf("%d",&n); while(n!=0){ if(n%2==0){ for(int i=2;i<n;i++){ if(sushu(i)==1&&sushu(n-i)==1){ printf("

iOS 简单代码 求大神帮忙注释下 跪谢

问题描述 iOS 简单代码 求大神帮忙注释下 跪谢 //1 [self.navigationController popViewControllerAnimated:YES] //2 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { id objVC = [segue destinationViewController];// if([objVC isKindOfClass:[SecendViewContr

数据-sql问题求大神解救哈小弟,感激不尽

问题描述 sql问题求大神解救哈小弟,感激不尽 major A A AB 要查询出来的结果为 major A A A 注:这里数据不是死的,是活的,只是例子.求大神给SQL语句!!! 解决方案 用distinct 解决方案二: 什么意思说清楚点,AB什么含义,是叫我们拆开吗 解决方案三: select distinct major from 表名 where major="A"; 解决方案四: 可以参考这篇文章:http://www.cnblogs.com/maanshancss/ar

exists-mysql问题 求 大神们 帮我看下谢谢了

问题描述 mysql问题 求 大神们 帮我看下谢谢了 delect from v_product WHERE EXISTS(SELECT category_id,p_type,p_from FROM(SELECT * FROM v_product WHERE p_tid=201504250838220)a) 解决方案 You have an error in your SQL syntax; check the manual that corresponds to your MySQL serv

wpf-我想用Wpf钟表,但是我不会将表上的针的旋转角度在后台代码中修改,求大神指导,小弟初学,求代码

问题描述 我想用Wpf钟表,但是我不会将表上的针的旋转角度在后台代码中修改,求大神指导,小弟初学,求代码 老师要我们做一个旋转的时钟,初学有点懵懂,就是让时分秒针正常的按照系统时间来转动 解决方案 http://www.codeproject.com/Articles/29438/Analog-Clock-in-WPF

库-求教,求大神帮忙注释一下

问题描述 求教,求大神帮忙注释一下 /** 文件库对话框 / public class FileLibDialog extends Dialog implements DialogInterface{ /* 文件库数据结构为 parentList 放 文件库名. childList 放对应文件库里的文件. 库名在parentList的位置与其文件在childList的位置一样 */ private ArrayList parentList; private ArrayList> childLis

线程-求大神指点,小弟拜上,弱鸡一个,请不吝赐教

问题描述 求大神指点,小弟拜上,弱鸡一个,请不吝赐教 MFC中可不可以使用WaitForSingleObject使一个OnTimer线程挂起呢,为什么我写的程序直接就跳过了WaitForSingleObject了呢 解决方案 OnTimer?定时器不是线程 解决方案二: 定时器消息在主线程中,不是可等待信号,wait不起作用的 解决方案三: 你WaitForSingleObject调用失败了吧~你Wait什么内核对象?