Simplesmente não consigo resolver os problemas abaixo, já tentei de tudo.
segue as questões em anexo:
Minhas tentativas para a questão 2, que eu não sei por que não estão funcionando.
1 -
#include <stdio.h>
int main ()
{
int i=0,j=0;
int mat[100][100], linhas=0,colunas=0;
printf("Defina o numero de linhas do labirinto\n");
scanf("%i", &linhas);
printf("Defina o numero de colunas do labirinto\n");
scanf("%i", &colunas);
printf("Defina valores entre:\n 0:posições possiveis\n 2:paredes \n 3:saidas,so existem nas laterais do labirinto\n");
for (i=0;i<linhas;i++)
{
for(j=0;j<colunas;j++)
{
printf("Posicao: linha %i / coluna %i\n",i,j);
scanf("%i",mat[j]);
} }
printf(" Escolha a posicao inicial do cego\n Linha:\n"); scanf("%i",&i);
printf("Coluna\n"); scanf("%i",&j);
printf("Posicao inical: [%i][%i]\n",i,j);
while (mat[j]!=3) {
if ((mat[i-1][j]==0 || mat[i-1][j]==3)&& i<linhas && j<colunas && i>=0 && j>=0) { mat[j]=1; i--; printf("Andou para linha %i coluna %i\n", i,j); } else { if ((mat[i-1][j+1]==0 || mat[i-1][j+1]==3)&& i<linhas && j<colunas && i>=0 && j>=0) { mat[j]=1; i--; j++; printf("Andou para linha %i coluna %i\n", i,j);
} else { if ((mat[j+1]==0 || mat[j+1]==3)&& i< linhas && j< colunas && i>=0 && j>=0) {
mat[j]=1; j++; printf("Andou erro para linha %i coluna %i\n", i,j); } else { if ((mat[i+1][j+1]==0 || mat[i+1][j+1]==3)&& i<linhas && j<colunas && i>=0 && j>=0) { mat[j]=1; i++; j++; printf("Andou para linha %i coluna %i\n", i,j);
} else { if ((mat[i+1][j]==0 || mat[i+1][j]==3)&& i<linhas && j<colunas && i>=0 && j>=0) { mat[j]=1; i++; printf("Andou para linha %i coluna %i\n", i,j);
} else { if ((mat[i+1][j]==0 || mat[i+1][j]==3)&& i<linhas && j<colunas && i>=0 && j>=0) { mat[j]=1; i++; printf("Andou para linha %i coluna %i\n", i,j);
} else { if ((mat[i+1][j-1]==0 || mat[i+1][j-1]==3)&& i<linhas && j<colunas && i>=0 && j>=0) { mat[j]=1; i++; j--; printf("Andou para linha %i coluna %i\n", i,j);
} else { if ((mat[j-1]==0 || mat[j-1]==3)&& i<linhas && j<colunas && i>=0 && j>=0) { mat[j]=1; j--; printf("Andou para linha %i coluna %i\n", i,j);
} else { if ((mat[i-1][j-1]==0 || mat[i-1][j-1]==3)&& i<linhas && j<colunas && i>=0 && j>=0) { mat[j]=1; j--; i--; printf("Andou para linha %i coluna %i\n", i,j);
} else { printf("Por falta de movimentos, o cego morreu!\n"); }
}
}
}
}
}
}
} }
} if (mat[j]==3) { printf("VITORIA!"); }
return 0; } Desde já agradeço a ajuda!
Trabalho_02_VE2.pdf