el resultado de la división no me con puntos decimales

Iniciado por alexfajam, 6 Septiembre 2017, 20:45 PM

0 Miembros y 1 Visitante están viendo este tema.

alexfajam

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";
}
   system ("pause");
   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
-Engel Lex

ivancea96

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.