这里是任务:阵列沃克C语言
项目U6:数组沃克 收件,计算跨越10×10阵列的“行走”(一个可爱的机器人的)中的程序。 数组包含字符(全部最初为'。')。通过输入字符n,e,s,w来控制步行,用户可以输入北,东,南,西四个不同方向 。如果用户 进入x程序退出。在每个方向命令之后,打印阵列的步骤以从A到Z开始的大写字母显示。我们使用A作为起始点, ,其余25个字母表示步骤。使用字母Z表示一个步骤后,我们环绕并从A开始。为了让步行更有趣,用户不允许重新访问某个位置。在这种情况下,程序不打印阵列,但 打印出“你不能去那里!” - 是的,你可以陷入困境。 在左上角开始(位置0,0):
多数民众赞成我到目前为止有:
#include <stdio.h>
#include <conio.h>
#define M 26
#define N 10
#define K 10
int main()
{
char A[N][K],direction;
char let[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 i=0,j=0,m=0;
for(i=0; i<N; ++i)
for(j=0; j<K; ++j)
A[i][j]='.';
for(i=0; i<N; ++i)
{ A[0][0]=let[0];
for(j=0; j<K; ++j)
printf("%c",A[i][j]);
printf("\n");
}
getch();
scanf("%c",&direction);
for(m=1;m<26;m++){
if (direction=='E')
for(i=0; i<N; ++i){ //i don't think that the way that im thinking here is rigth
A[0][0]=let[0];
m=i+1;
A[m][j++]=let[m];
for(j=0; j<K; ++j)
printf("%c",A[i][j]);
printf("\n");}
return direction;
}
return 0;
}
我知道,我还没有接近解决方案,但我想RLY知道如何做到这一点。 我无法理解如何更改'。'写下一封信,记住所有的职位。
'm = i + 1'在当前位置看起来非常错误。你应该使用'i + 1'而不是'm'。 – 2014-10-26 15:39:11
另外,“返回方向”(你向谁回来)有什么意义? – 2014-10-26 15:40:34