Ir ao conteúdo

Posts recomendados

Postado

Bom dia,

 

Estou fazendo exercícios da faculdade, até que cheguei nesse aqui com esse if maldito que não funciona direito.

 

Alguém pode me indicar o local onde se encontra o erro?

 

#include <stdio.h>
#include <stdlib.h>

int main(){
	
	float altura,hvoo,peso;
	int idade;
	
	/* ENTRADA DE DADOS */
	
	printf("\nSistema para verificação de possível candidato a piloto de aeronaves.\n");
	printf("\nDigite a altura do candidato: ");
	scanf("%f",&altura);
	printf("\nDigite a idade do candidato: ");
	scanf("%i",&idade);
	printf("\nDigite a quantidade de horas de vôo que possui o candidato: ");
	scanf("%f",&hvoo);
	printf("\nDigite o peso do candidato: ");
	scanf("%f",&peso);
	
	/* FIM ENTRADA DE DADOS */
	
	/* PROCESSAMENTO DE DADOS */
	
	if(altura>=1.75)
		if(idade>22 && idade<40)
			if(hvoo>1600)
				if(peso>65 && peso<95)
					printf("\nO candidado é apto para a vaga.");
	else
				if(peso<65 || peso>95)
			if(hvoo<1600)
		if(idade<22 || idade>40)
	if(altura<1.75)
	printf("O candidato não é apto para a vaga.");
		
}

Grato desde já.

Postado

Você não pode utilizar um IF para cada validação desse jeito... o ELSE esta funcionando apenas para a validação "altura>=1.75".

Um forma de fazer funcionar corretamente é fazer as validações em apenas um IF:

#include <stdio.h>
#include <stdlib.h>

int main(){
	
	float altura,hvoo,peso;
	int idade;
	
	/* ENTRADA DE DADOS */
	
	printf("\nSistema para verificação de possível candidato a piloto de aeronaves.\n");
	printf("\nDigite a altura do candidato: ");
	scanf("%f",&altura);
	printf("\nDigite a idade do candidato: ");
	scanf("%i",&idade);
	printf("\nDigite a quantidade de horas de vôo que possui o candidato: ");
	scanf("%f",&hvoo);
	printf("\nDigite o peso do candidato: ");
	scanf("%f",&peso);
	
	/* FIM ENTRADA DE DADOS */
	
	/* PROCESSAMENTO DE DADOS */
	
	if(altura>=1.75 && (idade>22 && idade<40) && hvoo>1600 && (peso>=65 && peso<=95))
					printf("\nO candidado é apto para a vaga.");
	else
	printf("O candidato não é apto para a vaga.");
		
}

Espero ter ajudado e me corrigam se eu estiver errado.

  • Curtir 2
  • Membro VIP
Postado

@Patrick Franco

Você está perdido nas indentações. Use chaves '{ }'  para se localizar.

Esse ELSE deveria ser da altura, mas como não existe chave ali, ele acaba pertencendo ao 'IF peso'.

 

Uma forma de reduzir os IFs é fazer conforme explicado acima, se bem que achei que é muita comparação pra uma condicional só.

 

  • Curtir 2

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!