Ir ao conteúdo

Linguagem C, problema com if/else


SpectrusBR

Posts recomendados

Postado

Eu fiz esse programa mas quando eu vou copilar, aparece no codeblocks esse erro

ao.c||In function 'main':|

ao.c|57|error: 'else' without a previous 'if'|

||=== Build finished: 1 errors, 0 warnings ===|


#include <stdio.h>
#include <string.h>

main(){

char OP[3];

printf("digite SIM ou NAO");
printf("\nO animal é mamifero?");
fflush(stdin);
gets(OP);

if(strcmp(strupr(OP), "SIM"))
printf("é ave?");
fflush(stdin);
gets(OP);{
if(strcmp(strupr(OP), "SIM")){
printf("possui casco?");
fflush(stdin);
gets(OP);
if(strcmp(strupr(OP), "SIM")){
printf("é carnivoro?");
fflush(stdin);
gets(OP);
if(strcmp(strupr(OP), "SIM")){
printf("cobra");
}else{
printf("crocodilo");
}
}else
printf("tartaruga");
}else{
printf("é nao voadora?");
fflush(stdin);
gets(OP);
if(strcmp(strupr(OP), "SIM")){
printf("é nadadora?");
fflush(stdin);
gets(OP);
if(strcmp(strupr(OP), "SIM")){
printf("aguia");
}else{
printf("pato");
}
}else{
printf("é tropical?");
fflush(stdin);
gets(OP);
if(strcmp(strupr(OP), "SIM")){
printf("pinguim");
}else{
printf("avestruz");
}
}
}
}
[B][I][U][COLOR="Red"] else[/COLOR][/U][/I][/B]{
printf("é quadrupede?");
fflush(stdin);
gets(OP);
if(strcmp(strupr(OP), "SIM")){
printf("é bipede?");
fflush(stdin);
gets(OP);
if(strcmp(strupr(OP), "SIM")){
printf("é voador?");
fflush(stdin);
gets(OP);
if(strcmp(strupr(OP), "SIM")){
printf("é baleia");
}else{
printf("é morcego");
}
}else{
printf("é onivoro?");
fflush(stdin);
gets(OP);
if(strcmp(strupr(OP), "SIM")){
printf("é macaco");
}else{
printf("é homem");
}
}
}else{
printf("é carnivoro?");
fflush(stdin);
gets(OP);
if(strcmp(strupr(OP), "SIM")){
printf("é cavalo");
} else{
printf("é leao");
}
}
}
}

É esse else q deixei em vermelho q esta dando o problema, alguem pode me dizer o porque disso??

Obrigado!!

Postado

No meu editor você abriu um bloco na linha 16 logo depois da função gets(OP) e fechou um linha anterior ao else que tá dando erro. Como não se trata de um if não pode haver else. exclua as chaves da linha 16 e 56 pode funcionar.

Mas como boa prática de programação recomendo usar o comando switch é bem mais aplicável para essa situação por encontrar um else no meio de tanto ifs é como achar uma agulha no palheiro. Procure algum material sobre switch em C e bons estudos.

  • Moderador
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...