Ir ao conteúdo
  • Cadastre-se

C Erro de execução linguagem C


Posts recomendados

Bom dia.

Compilação sem erros mas, ao executar o código, entra no bloco de comandos do primeiro if mesmo quando a condição if não é atendida. Quem descobre o que há de errado com meu código? Obrigado.

 

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

int main(){
	char  sexo, nome[50];
	int pront;
	float alt, peso, PBW;
	setlocale(LC_ALL, "Portuguese"); 

/*inserção de dados do paciente para gerar os cálculos*/
	printf("INSIRA OS DADOS DO PACIENTE\n");
	printf("\nNome:");
	gets(nome);
	printf("\nNúmero do prontuário:");
	scanf("%d", &pront);
	printf("\nSexo (M para masculino; F para feminino:\n");
	scanf("%s", &sexo);
	if(sexo!='M'||sexo!='m'||sexo!='F'||sexo!='f'){
		printf("\nValor incorreto. Digite M para masculino ou F para feminino:");
		scanf("%c", &sexo);
	}
	printf("\nPeso:");
	scanf("%f", &peso);
	printf("\nAltura (cm):");
	scanf("%f", &alt);
	
/*cálcular o peso predito*/
	if (sexo=='M'||sexo=='m'){
		PBW=0.91*(alt-152.4) + 50;
	}else{
		PBW=45.5+0.91*(alt-152.4);
	}
	printf("\nPeso Predito(PBW):%.2f", PBW);
	return(0);
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Acredito que o || seja o operador lógico pra "ou". Ou seja, se o valor inserido for diferente de PELO MENOS UMA das letras, já vai entrar no if. Se usar o operador "e", que eu acredito ser &&, deve funcionar, pois só vai entrar no if se o valor inserido for DIFERENTE DE TODAS as letras.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

7 minutos atrás, Pedro Capixaba disse:

mesmo quando a condição if não é atendida

 

🤔Será?

 

Essa seria para o forum de lógica. A igualdade é reflexiva, simétrica e transitiva. Duas coisas iguais a uma terceira são iguais entre si. Ou vendo de outro modo uma coisa sempre é diferente de duas coisas diferentes...

 

image.png.f3953db6f3b6399dbdeba5a764af680b.png

 

então sua condição não é o que você queria que fosse... Essa condição é sempre verdadeira. Escreva uma tabela. voce queria usar AND

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

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