Я пытаюсь выполнить упражнение, которое здесь (стр. 246, номер 6.23) http://index -of.es / C ++ / C% 20How% 20to% 20Program.pdf . Мой код печатает квадрат 12x12, но вместо этого мой код печатает квадрат 25x25, но с левой стороной, образованной наполовину 1, а другая половина - 0. Почему?
#include <stdio.h>
#include <stdlib.h>
#define SIZE 50
int main(){
int lifted=1, floor[50][50]={0}, commands[7]={1,2,3,4,5,6,9}, spaces, command, north=1, south=0, east=0, west=0, row=25, column=25, i, max=1;
while(command!=9){
printf("Enter a command: ");
scanf("%d",&command);
switch(command){
case 1:
lifted=1;
break;
case 2:
lifted=0;
break;
case 3:
if(north==1){
north=0;
east=1;
}else if(south==1){
south=0;
west=1;
}else if(west==1){
north=1;
west=0;
}else if(east==1){
south=1;
east=0;
}
break;
case 4:
if(north==1){
north=0;
west=1;
}else if(south==1){
south=0;
east=1;
}else if(west==1){
west=0;
south=1;
}else if(east==1){
north=1;
east=0;
}
break;
case 5:
printf("Enter a number of spaces: ");
scanf("%d",&spaces);
max=spaces;
break;
case 6:
for(i=0; i<50; i++){
for(int j=0; j<50; j++){
printf("%d ",floor[i][j]);
}
printf("\n");
}
break;
case 9:
exit(0);
}
if(lifted==0){
for(i=0; i<max; i++){
if(north==1){
row--;
}else if(south==1){
row++;
}else if(east==1){
column++;
}else if(west==1){
column--;
}
floor[row][column]=1;
}
}
}
return 0;
}
На выходе не отображается квадрат 12х12. Зачем? Пожалуйста, помогите мне. По сути, я не знаю, что делать. Может кто-нибудь найти ошибку? Я был на этом упражнении уже более суток. Спасибо.