controlador de alcoholemia en c++

Iniciado por santiagocohen18, 2 Septiembre 2017, 20:25 PM

0 Miembros y 2 Visitantes están viendo este tema.

santiagocohen18

necesito ayuda  :-\
estoy haciendo algo mal en la cuenta o en los int/float
teniendo en cuenta la formula de alcoholemia: (ml de sustancia / 100 ) x graduacion alcoholica (cerveza 5.5), todo eso por 0.8 y despues divides por (peso x el genero (mujer = 0.6 y hombre 0.7), lo que me sale mal es la parte "matematica" del programa, en calculadora me da distinto que en el programa

solo necesito eso del primer caso y a partir de ese caso puedo hacer los demas, gracias!



#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <math.h>
#include <stdio.h>

using namespace std;
int main (){
     int opc,a,b,xd,ml;
     float res,d,cc,bb,alcolemiaa,alcolemiab,alcolemiac,hrasa,horasb,horasc,horasd,alcolemiax,kg,c;

while(xd != 5){

cout <<"\n--------MENU-------";
cout <<"\n1.Nivel de alcoholemia";
cout <<"\n2.En cuanto podre manejar";
cout <<"\n3.en cuanto no tendre alcohol";
cout <<"\n4.salir";

cout <<"\nElija una opcion ===>";cin >> opc;

switch(opc){
case 1:
system ("cls");
cout <<"cuantos ml tomaste?"<<endl;
cin >>ml;
cout <<"que tomaste? (1.cerveza,2.vino,3.whisky)"<<endl;
cin >>c;
cout <<"cuantos pesas? (kg)"<<endl;
cin >>kg;
cout <<"Hombre o Mujer (1/2)"<<endl;
cin >>b;
if (b = 1){
bb = 0.7;
}
if (b = 2){
bb = 0.6;
}
if (c = 1){
cc = 5.5;
}
if (c = 2){
cc = 12;
}
if (c = 3){
cc = 40;
}
res = (((ml/100)*cc)*0.8)/(kg*bb); // cc es graduacion alcoholica, bb es el genero
cout <<"la respuesta es: "<<res<<endl;
system ("pause");
system ("cls");
break;
]


ivancea96

(ml/100)
ml es int, por lo tanto, ese /100 va a generar otro int (perdiendo los decimales)
Te diría que pongas todas las avriables que vas a usar en la fórmula como float (o al menos, las necesarias, por ejemplo, "int * float" resulta en un float).

A parte de esto, cuando vayas a hacer una pregunta, di exactamente qué es lo que ocurre, "no sé qué estoy haciendo mal" no ayuda. Di qué es lo que hace el programa mal.

ivancea96

Y bueno, en las condiciones:
Código (cpp) [Seleccionar]
if (b = 1)
"=" es una asignación, no una comparación. Para comparar es "==".

santiagocohen18

#3
es verdad, que estupido, ya funciona, gracias!!!