Bueno, quisiera una ayuda,
no me da el resultado de la division esta calculadora, le falta una funcion, no se cual es,..quiero el resultado con dos decimales.
ademas quisiera que cuando divida para cero me imprima: imposible realizar operacion.
disculpen el idioma, estudio en italiano.
#include <iostream>
using namespace std;
int somma(int a, int b)
{
int ret;
ret = a + b;
return ret;
}
int sottrai(int a, int b)
{
int ret;
ret = a - b;
return ret;
}
int molt(int a, int b)
{
int ret;
ret = a * b;
return ret;
}
double dividi(int a, int b)
{
double ret;
ret = a/b;
return ret;
}
int main() {
int a,b;
char op;
cout<<"Inserisci il primo numero:";
cin>>a;
cout<<"Inserisci il secondo numero:";
cin>>b;
cout<<"Scegli l'operatore: ";
cin>>op;
switch(op)
{
case '+':{
cout<<"risultato:"<<a/b<<endl;
break;
}
case '-':{
cout<<"risultato:"<<a-b<<endl;
break;
}
case '*':{
cout<<"risultato:"<<a*b<<endl;
break;
}case '/':{
cout<<"risultato:"<<a/b<<endl;
break;
}
}
return 0;
}
Mod: Los códigos deben ir en etiquetas GeSHi
la división de 2 enteros da por resultado un entero, si quieres que esto no sea así tienes que usar casting de variables
ret = (double)a/b;
esto tornará "a" tipo double antes de calcularlo, por lo tanto el resultado es el tipo de varibale de mayor precisión
sobre la división entre 0 tienes 2 caminos,
el simple
if(b==0) imprimir ("no puedes dividir entre cero")
el complicado, manejo de excepciones
try - catch
Cita de: engel lex en 28 Octubre 2015, 20:13 PM
la división de 2 enteros da por resultado un entero, si quieres que esto no sea así tienes que usar casting de variables
ret = (double)a/b;
esto tornará "a" tipo double antes de calcularlo, por lo tanto el resultado es el tipo de varibale de mayor precisión
sobre la división entre 0 tienes 2 caminos,
el simple
if(b==0) imprimir ("no puedes dividir entre cero")
el complicado, manejo de excepciones
try - catch
Disculpa donde debo poner
ret = (double)a/b;
No me sale :'(
en la división, linea 25
Cita de: engel lex en 28 Octubre 2015, 20:32 PM
en la división, linea 25
Ya lo puse, pero no me viene el resultado, si divido 5/2 me da 2.
que puedo hacer?
muestra como tienes el código en este momento
Cita de: engel lex en 28 Octubre 2015, 21:25 PM
muestra como tienes el código en este momento
El codigo esta asi:
#include <iostream>
using namespace std;
int somma(int a, int b)
{
int ret;
ret = a + b;
return ret;
}
int sottrai(int a, int b)
{
int ret;
ret = a - b;
return ret;
}
int molt(int a, int b)
{
int ret;
ret = a * b;
return ret;
}
double dividi(int a, int b)
{
double ret;
ret = (double)a/b;
return ret;
}
int main() {
int a,b;
char op;
cout<<"Inserisci il primo numero:";
cin>>a;
cout<<"Inserisci il secondo numero:";
cin>>b;
cout<<"Scegli l'operatore: ";
cin>>op;
switch(op)
{
case '+':{
cout<<"risultato:"<<a/b<<endl;
break;
}
case '-':{
cout<<"risultato:"<<a-b<<endl;
break;
}
case '*':{
cout<<"risultato:"<<a*b<<endl;
break;
}case '/':{
cout<<"risultato:"<<a/b<<endl;
break;
}
}
return 0;
}
Creo que luego del int main debo declarar una variable, pero no se cual...
y para que me imprima "no es posible efectuar la operacion" cuando divido para cero no se donde poner el If para que actue.
mira tu switch
switch(op)
{
case '+':{//cuando es "+" divides?
cout<<"risultato:"<<a/b<<endl;//divides directamente en lugar de usar la función?
break;
}
Cita de: engel lex en 28 Octubre 2015, 21:33 PM
mira tu switch
switch(op)
{
case '+':{//cuando es "+" divides?
cout<<"risultato:"<<a/b<<endl;//divides directamente en lugar de usar la función?
break;
}
Si, me he confundido con ese paso.
que funcion puedo usar en ves de la que tengo establecida?
switch(op)
{
case '+':{
cout<<"risultato:"<<a+b<<endl;
break;
}
tu creaste una serie de funciones con un fin, ese fin es usarlas
ej
case '/':{
cout<<"risultato:"<<dividi(a,b)<<endl;
break;
}