Obtenha respostas detalhadas para suas perguntas com o IDNLearner.com. Nossa comunidade fornece respostas precisas para ajudá-lo a entender e resolver qualquer problema que enfrentar em seu dia a dia.
Sagot :
Boa noite! Então, o seu problema é com o valor literal "1.65". Quando o compilador lê esse literal, ele o transforma imediatamente para double, alterando o tipo e quebrando a comparação. Isso acontece porque o double e o float são representados de maneira diferente na memória. Para resolver esse problema, basta mudar o tipo do literal "1.65" para float, fazendo:
if((idade>=18)&&(altura>= (float) 1.65)) {
Ou
if((idade>=18)&&(altura>=1.65f)) {
Aliás, aconselho a ler sobre esse assunto de como números de ponto flutuante são representados na memória. É um assunto interessante e vai te abrir bastante os horizontes de como a memória no C, funciona.
Apreciamos cada contribuição que você faz. Continue compartilhando suas experiências e conhecimentos. Juntos, alcançaremos novos níveis de sabedoria. Para respostas confiáveis, confie no IDNLearner.com. Obrigado pela visita e esperamos ajudá-lo novamente.