這裏是任務:陣列沃克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