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

Duvida : erro 'else' without a previous 'if' no Dev C++


Fernandomiron

Pergunta

Boa noite, 

Estava fazendo um exercicio em C no Dev C++ que deve ler o nome de um cliente e o valor da sua compra e então estipular o valor do desconto e imprimir na tela uma mensagem com o nome do cliente  e o valor de sua compra já com o desconto, porem quando fui compilar o código ele da esse erro : erro 'else' without a previous 'if'  nas linhas 21 e 25, se eu comentar as linhas ele compila normalmente e o programa funciona, porem gostaria de saber o porque ele faz isso, caso eu esteja errando alguma coisa ou esquecendo algo importante, se alguém puder esclarecer essa  duvida desde já agradeço.

Segue abaixo o código já com as linhas que estão dando problema comentadas

 

#include <conio.h>
#include <stdio.h>



main(){
	
	float total, valorcompra;
	char nome[30];
	
	
				printf("Ensira o nome do cliente : ");
				scanf("%s",nome);
				printf("Ensira o valor da compra : ");
				scanf("%f",&valorcompra);
				
				if (valorcompra <= 100)
						total = valorcompra - ((valorcompra * 10 ) / 100);
						printf("O valor total da compra de %s com desconto e de  : %f",nome,total);
				
				else if (valorcompra <= 200 )
						total = valorcompra - ((valorcompra * 15 ) / 100 );
						//printf("O valor total da compra de %s com desconto e de  : %f",nome,total);
				
				else 
						total = valorcompra - ((valorcompra * 20 )  / 100 );
						//printf("O valor total da compra de %s com desconto e de  : %f",nome,total);
		
	
		
	
	
	getch();
}

 

Editado por Fernandomiron
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Pelo o que estou a ver no teu texto tens um if com duas instruções e por isso deverias ter metido { }, pois se não fizeres tens um if  seguindo por uma instrução e depois tens um printf independente do if, logo para o compilador a função if acabou antes do printf. Fazendo que quando o compilador vê o else não tenha nenhum if associado antes dele.

Concluindo, poderias ter feito dessa forma se só tivesses uma instrução que é o caso das outras condições else que tens e nunca metas outras coisas que não tenham haver entre um if e um else. Se quiseres vai ao meu perfil e na publicação Módulos de números em C está lá um if else num código que fiz. Pode ser que ajude a que entendas melhor o que estou a dizer.

Espero que tenha ajudado, 

Assissi

Editado por Assissi
Link para o comentário
Compartilhar em outros sites

  • 0
8 horas atrás, Assissi disse:

Pelo o que estou a ver no teu texto tens um if com duas instruções e por isso deverias ter metido { }, pois se não fizeres tens um if  seguindo por uma instrução e depois tens um printf independente do if, logo para o compilador a função if acabou antes do printf. Fazendo que quando o compilador vê o else não tenha nenhum if associado antes dele.

Concluindo, poderias ter feito dessa forma se só tivesses uma instrução que é o caso das outras condições else que tens e nunca metas outras coisas que não tenham haver entre um if e um else. Se quiseres vai ao meu perfil e na publicação Módulos de números em C está lá um if else num código que fiz. Pode ser que ajude a que entendas melhor o que estou a dizer.

Espero que tenha ajudado, 

Assissi

Obrigado Assissi, eu testei aqui e já deu certo, eu não sabia que isso era necessario, estou aprendendo e ainda é meio confuso.

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...