Título: el resultado de la división no me con puntos decimales
Publicado por: alexfajam en 6 Septiembre 2017, 20:45 pm
Ayuda hice el siguiente código pero el resultado de la división no me con puntos decimales, lo declare con float y o encuentro el error #include <iostream> #include <math.h> using namespace std; void portada (void); int Leervariable (void); int Suma (int A,int B); int Resta (int A,int B); int Multiplicacion (int A,int B); float Division (int A,int B); void Imprimir (int C); int main (void) { int A,B,C,op; float C1; portada(); A=Leervariable(); B=Leervariable(); C=Suma (A,B); C=Resta (A,B); C=Multiplicacion (A,B); C1=Divicion (A,B); cout<<endl<<endl<<"\t\t Menu"; cout<<endl<<endl<<"\t\t 1. Suma"; cout<<endl<<endl<<"\t\t 2. Resta"; cout<<endl<<endl<<"\t\t 3. Multiplicacion"; cout<<endl<<endl<<"\t\t 4. Division"; cout<<endl<<endl<<"\t\t Selecciona una opcion\t"; cin>> op; switch (op) { case 1: C=Suma (A,B); cout<<endl<<endl<<"\t\t Tu resultado:\t\t" <<C<<"\n\t\t"; break; case 2: C=Resta (A,B); cout<<endl<<endl<<"\t\t Tu resultado:\t\t" <<C<<"\n\t\t"; break; case 3: C=Multiplicacion (A,B); cout<<endl<<endl<<"\t\t Tu resultado:\t\t" <<C<<"\n\t\t"; break; case 4: C1=Division (A,B); cout<<endl<<endl<<"\t\t Tu resultado:\t\t" <<C1<<"\n\t\t"; break; default:cout<<endl<<endl<<"\t\t No existe opcion"<<"\n\t\t"; } return 0; } void portada (void) { cout<<endl<<endl<<"\t\t Instituto Politecnico Nacional"; cout<<endl<<endl<<"\t\t Escuela Superior de Ingieneria Mecanica y Electrica"; cout<<endl<<endl<<"\t\t Ingenieria en Comunicaciones y Electronica"; cout<<endl<<endl<<"\t\t Grupo:1CV11 Turno Vespertino"; cout<<endl<<endl<<"\t\t Fajardo Munoz Alejandro"; } int Leervariable (void) { int A; cout<<endl<<endl<<"\t\t Ingresa un valor"<<"\t"; cin>>A; return A; } int Suma (int A,int B) { int C; C=A+B; return C; } int Resta (int A,int B) { int C; C=A-B; return C; } int Multiplicacion (int A,int B) { int C; C=A*B; return C; } float Division (int A,int B) { float C1; C1=A/B; return C1; }
· Los códigos deben ir en etiquetas GeSHi · Lostítulos deben ser descriptivos >aquí las reglas del foro (http://foro.elhacker.net/reglas.htm) -Engel Lex
Título: Re: Switch
Publicado por: ivancea96 en 6 Septiembre 2017, 22:29 pm
En la línea de la función división "C1=A/B;". C1 -> float A -> int B -> int
Separemos por partes. A C1 le estás asignando el resultado de A/B. Por tanto, olvidemos C1, y centrémonos en A/B. A y B son int, por tanto, cualquier operación básica que hagas con ellos, dará como resultado un int. Esto es así con todos los tipos cuando son iguales. En resumen, A/B da un resulado entero, así que da igual que C1 sea float, le estás asignando un entero.
Otro caso sería que A fuera int y B fuera float. Si uno de los miembros de la operación es float o double, el resultado será float o double.
|