Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: jet1994 en 23 Septiembre 2012, 19:15 PM

Título: Ayuda con una funcion, por favor
Publicado por: jet1994 en 23 Septiembre 2012, 19:15 PM
necesito ayuda con una duda por favor:
tengo tres argumentos ingresados:
en el primer argumento puede ser:+, - ,* o /
en el segundo y tercero es un numero

funcion(int argc,char *argv[]{
float a,b;
a=atof(argv[2]);
b=atof(argv[3]);
if (*argv[1]=='+'){ return(a+b);}
if (*argv[1]=='-'){ return(a-b);}
if (*argv[1]=='*'){ return(a*b);}
if (*argv[1]=='/'){ return(a/b);}
}
lo que necesito es que segun lo que esta en el primer argumento retornar la operacion que me indique
(lo que esta arriba es un ejemplo de lo que quiero hacer, yo se que esta malpor que solo se puede usar un return,pero necesito la manera de correcta de hacerlo)
es necesario retornar la operacion
Gracias de antemano
Título: Re: Ayuda con una funcion, por favor
Publicado por: flony en 23 Septiembre 2012, 19:38 PM
probaste con darle a cada opcion una funcion distinta cosa que te de un return distinto?
Título: Re: Ayuda con una funcion, por favor
Publicado por: Don Pollo en 24 Septiembre 2012, 02:36 AM
Así funciona correctamente:

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

float funcion(char *argv[]){
   float a,b;
   a=atof(argv[2]);
   b=atof(argv[3]);
   if (*argv[1]=='+'){ return(a+b);}
   if (*argv[1]=='-'){ return(a-b);}
   if (*argv[1]=='x'){ return(a*b);}
   if (*argv[1]=='/'){ return(a/b);}

   return -1;
}

int main(int argc, char *argv[])
{

   cout << funcion(argv) << endl;
   return 0;
}


Te enumero los errores que he encontrado: