Mas problemas con return.

Iniciado por cNoob, 20 Junio 2016, 22:00 PM

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

cNoob

Hola!
Pues eso, hoy me puse a hacer un pequeño programa que suma y resta dos números y no me deja devolver a main dos valores de otra función con return.
Además de esto, me gustaría saber si hay alguna manera de que al final del programa, si el usuario elige repetir programa, el programa vuelva al principio (en este caso, a menu1, no se si me explico).
Un saludo!

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int Menu1 (int numero1, int numero2);
void Menu2 (int suma,int resta);
int MenuFinal ();

int main ()
{
    int numero1;//PRIMER NUMERO INTRODUCIDO
    int numero2;//SEGUNDO NUMERO INTRODUCIDO
    int suma;//PRODUCTO DE LA SUMA DE AMBOS
    int resta;//PRODUCTO DE LA RESTA DE AMBOS
    int opcion;//OPCION ELEGIDA (1 O 2) EN LA FUNCION "MENU FINAL"

    Menu1(numero1,numero2);
    suma=numero1+numero2;
    resta=numero1-numero2;
    Menu2 (suma,resta);
    opcion=MenuFinal();
    //AQUI QUIERO PONER UN COMANDO PARA QUE VUELVA A "MENU1"

    return 0;
}

int Menu1 (int numero1, int numero2)
{
    cout<<"Introduce dos numeros"<<endl<<"Numero 1: ";
    cin>>numero1;
    cout<<"Numero 2: ";
    cin>>numero2;

    return numero1;
    return numero2;
}

void Menu2 (int suma,int resta)
{
    cout<<"Producto de la suma = "<<suma<<endl;
    cout<<"Producto de la resta = "<<resta<<endl;
}

int MenuFinal ()
{
    int opcion;
    cout<<endl<<"---------------"<<endl<<"Final del programa, opciones:"<<endl;
    cout<<"1-> Repetir programa."<<endl<<"2-> Salir del programa."<<endl;
    cin>>opcion;
    return opcion;
}
Wannabe programador autodidacta de c++
"Usain Bolt comenzó gateando."

engel lex

#1
creo que deberias hacerte un tutorial de c++ en lugar de hacer estas locuras xD

Menu1 se esta simplemente llamando,aunque retornara, nadie lo capturará

segundo,  cuando se toca un return,  se sale de la función.. fin... no se hará absolutamente mas nada, luego del return ejecutarse el resto  es espacio muerto (incluyendo otros return)

lo que tu buscas se llaman "valores por referencia" no pasas el valor, sino el apuntador a la variable


sobre el volver, basta con un do-while

Código (cpp) [Seleccionar]
do{

//lo que vayas a hacer

}while( MenuFinal() == 1);


solo finalizará si menú final retorna diferente de 1, si no, repite
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

cNoob

Respondiendo a lo primero hahaha; en verdad el problema me ha dado en otro programa mas grande pero para no hacer un lio he preferido hacer este miniprograma para poder preguntar sin que el que me responda se tenga que leer un programa mas tocho hahaha.
A lo segundo, pero no hay forma de retornar dos valores y que capture los dos? La otra solución que se me ocurrió fue dividir la función en dos y que cada una devuelva un valor, pero sería muy engorroso... Y lo tercero no lo entendí muy bien, pero lo ojeare en google a ver si encuentro algo  ;D
Wannabe programador autodidacta de c++
"Usain Bolt comenzó gateando."

engel lex

lo de la función no es necesario retornar busca en Google "c++ parámetros por referencia"

y has un tutorial de c++ desde 0 porque estas cometiendo errores de cosas que normalmente explican... no tiene sentido que te des con cada detalle del lenguaje preguntando error por error...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.