从一个元素走到另一个元素 每次都上下左右移动,用A到Z标记,如果四个方向都堵住了就得尝试换一个方向~
程序我输出来了,但有一个疑问憋了我好几天了!!恩,我在下面标注了下,,麻烦看下呗^-^~~~抱歉我全部财产也就这20分吧,虽然少少点,但麻烦了~~
#include
#include
#include
using namespace std;
#define ROW 10
#define COL 10
int main()
{
char laby[ROW][COL],all_letter[26]={'A','B','C','D','E','F','G','H','I','J',
'K','L','M','N','O','P','Q','R','S','T',
'U','V','W','X','Y','Z'};
int row,col,letter,step;
bool up,down,right,left;
up=down=right=left=true;
for(row=0;row=0)&&(laby[row-1][col]=='.')))
{
row--;
laby[row][col]=all_letter[letter++];
break;
}
case 1:if(down=((row+1=0)&&(laby[row][col-1]=='.')))
{
col--;
laby[row][col]=all_letter[letter++];
break;
}
case 3:if(right=((col+1<COL)&&(laby[row][col+1]=='.')))
{
col++;
laby[row][col]=all_letter[letter++];
break;
}
}
if(!up&&!down&&!left&&!right)
break;
up=down=right=left=true;/*我看了答案来着,发现了这句话不明白什么意思,感觉有了这句话不可能输出啊,当事实说可以输出的,我就困惑了,这句话到底什么意思啊*/
}
for(row=0;row<ROW;row++)
{
for(col=0;col<COL;col++)
printf("%3c",laby[row][col]);
cout<<endl;
}
}
e~~如果不加那条语句的话,有时候的输出是错误的!!!
|