Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/02/2014, 12:09
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 3 meses
Puntos: 10
Respuesta: Error con una función

Creo que hay errores de concepto en el programa.

Como dice carbon, una función solo retorna un valor.
Así que ésta expresión:
Código C++:
Ver original
  1. float hazlo (float a, float b,float c)
  2. {
  3. return a;
  4. return b;
  5. return c;
  6. }

sólamente retornará el primer valor.

¿Por qué has conseguido que te funcione la función?
Cuando hablamos de parámetros, no hay una identificación del parámetro por nombre, sino por posición.

Entonces, cuando haces una llamada a la función así:
Código C++:
Ver original
  1. z=hazlo(a,b,c);

la variable char a de la función principal (main) pasa a ser el parámetro float a de la función con la firma:
Código C++:
Ver original
  1. float hazlo (float a, float b,float c);
cuando haces:
Código C++:
Ver original
  1. x=hazlo(b,c,a);
pues igualmente, ahora char b es float a en la función
e igualmente
Código C++:
Ver original
  1. w=hazlo(c,a,b);
hace que char c sea float a

Como ves, lo único que has hecho es 3 llamadas a la función, cambiando la posición de las variables, y la función sólo te va a retornar el primer valor. Y eso no tiene mucho sentido, porque ingresas 3 variables como argumento, de la cual sólo te evalúa una.

Es como si hubieras hecho así:

Código C++:
Ver original
  1. float hazlo (float a)
  2. {
  3. return a;
  4. }

Y luego las llamadas a la función fueran así:

Código C++:
Ver original
  1. z=hazlo(a);
  2. x=hazlo(b);
  3. w=hazlo(c);

Obtendrías el mismo resultado.