Que tengan todos un muy buen dia
Crean me que es la primera ves que uso estructuras
y prototipos con funciones y precisamente por ser
la primera ves no creo haberlo echo tan mal (risas)
el caso es que empecé con 30 errores y después de
muuuuuchas horas logre compilar el código pero el
caso es que el resultado que obtengo es la dirección
de memoria del campo y no el contenido.-
Me agradaría que además de marcarme el error
que estoy cometiendo, me dijeran en que debería
mejorar la sintaxis (luego le voy a agregar "Memoria" y a
validar si en ves de números se ingresaran por ej. letras)
Código:
#include <iostream>
#include <cstdlib>
using namespace std;
struct calcular
{
double valorUno;
double valorDos;
double resultado;
};
double resultado(string signo);
void ingValores();
int main(int argc, char *argv[])
{
ingValores();
calcular rv;
int opcion = 0;
while(1)
{
system("cls");
cout << "Que deseas hacer..?\n";
cout << "\n[1]-Sumar\n";
cout << "[2]-Restar\n";
cout << "[3]-Multiplicar\n";
cout << "[4]-Dividir\n";
cout << "[5]-Cambiar los valores\n";
cout << "[6]-Salir\n";
cout << "\nSeleccione: ";
cin >> opcion;
switch(opcion)
{
case 1: resultado("Sumar");
break;
case 2: resultado("Restar");
break;
case 3: resultado("Multiplicar");
break;
case 4: resultado("Dividir");
break;
case 5: ingValores();
break;
case 6: exit(0);
}
cout << "\n";
cout << "Apriete una tecla para seleccionar...";
system("pause>nul");
}
return EXIT_SUCCESS;
}
double resultado(string signo)
{
calcular rv;
if(signo == "Sumar")
{
rv.resultado = rv.valorUno + rv.valorDos;
cout << "El resultado de sumar: " << rv.valorUno << " + " << rv.valorDos << " = " << rv.resultado;
}
if(signo == "Restar")
{
rv.resultado = rv.valorUno - rv.valorDos;
cout << "El resultado de restar: " << rv.valorUno << " - " << rv.valorDos << " = " << rv.resultado;
}
if(signo == "Multiplicar")
{
rv.resultado = rv.valorUno * rv.valorDos;
cout << "El resultado de multiplicar: " << rv.valorUno << " * " << rv.valorDos << " = " << rv.resultado;
}
if(signo == "Dividir")
{
rv.resultado = rv.valorUno / rv.valorDos;
cout << "El resultado de dividir: " << rv.valorUno << " / " << rv.valorDos << " = " << rv.resultado;
}
}
void ingValores()
{
calcular rv;
cout << "Ingresa un valor..:";
cin >> rv.valorUno;
cout << "Ingresa otro......:";
cin >> rv.valorDos;
}
Desde ya muchas gracias por la ayuda que deseen brindarme
Un gran abrazo
El autodidacta DanielC++