Ir para conteúdo
Fórum Script Brasil
  • 0

Erro: Parse Error Before `else'


MicheL Vilela

Pergunta

Olá pessoal!

olhem esse pedaço de código e vejam se podem me ajudar:

Quando o nsq é maior que 400 ( ou seja, quando você passa a informação > que 20 para o N ele dá a mensagem e sai do programa. Até aí tudo bem.

Agora; quando é menor que 200 tenho que fazer um ELSE abaixo para ele alocar o espaço, mas quando coloco o else ele dá a mensagem parse error before `else'.

int main ( int argc, char **argv ) { 
 bool ok; 

 //  printf("Tamanho do tabuleiro = "); 
 // scanf("%d", &n);
  if (argc != 2)
    exit(-1);
  printf("\n Utilizacao: %s %s. \n",argv[0],argv[1]);
  //system("PAUSE");

  n=atoi(argv[1]);  //converta string para inteiro
  nsq = n*n; 
  
   if (nsq>400)
   printf("Faixa valida de 5 a 20!");
   exit(-1);

  // Aloca espaço para o tabuleiro 

  T= new(int* [n]); 
  for (int i=0; i < n; i++) 
    T[i]= new(int[n]); 
  for (int i=0; i < n; i++) 
    for (int j=0; j < n; j++) 
      T[i][j]=0; 
   
T[0][0]=1; //primeira posicao ocupada 
  ok= tenta_mov(2,0,0);  // andar mais duas - chama funcao, I=2,x=0,z=0
  if (ok) { 
    
    for (int i=0; i < n; i++) { 
      for (int j=0; j < n; j++) 
       printf("%d ", T[i][j]); 
    printf("\n"); 
     getch(); 
    } 
 } 
  else  
    printf("Faixa valida de 5 a 20!");
delete T;
getch();
return 0;
}

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Guest --milvilela --

Aí embaixo,

se o nsq for <400 ele tem que alocar espaço para o tabuleiro.Quero colocar o else antes do T= new(int* [n]); para entrar no for.

if (nsq>400)
   printf("Faixa valida de 5 a 20!");
   exit(-1);

  // Aloca espaço para o tabuleiro 

  T= new(int* [n]); 
  for (int i=0; i < n; i++) 
    T[i]= new(int[n]); 
  for (int i=0; i < n; i++) 
    for (int j=0; j < n; j++) 
      T[i][j]=0;

Link para o comentário
Compartilhar em outros sites

  • 0

Você deve estar colocando abaixo do exit(-1); e por isso está dando erro!

É isso que você está fazendo?:

if (nsq>400)
   printf("Faixa valida de 5 a 20!");
   exit(-1);
else
...
Se for isso mesmo, você se esqueceu do { } o certo seria assim:
if (nsq>400){
   printf("Faixa valida de 5 a 20!");
   exit(-1);
}
else{
...
}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...