• Viernes 15 de Noviembre de 2024, 13:42

Autor Tema:  return en función  (Leído 1883 veces)

player_

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
return en función
« en: Domingo 16 de Agosto de 2009, 23:47 »
0
Si por ejemplo tengo una funcion con 3 parametros (uno de ellos pasado por referencia como si estuviera usando C++, ya sé que en C no se hace así) que devuelve un valor x declarado dentro de la función:

int Funcion (int a, int &b, int c)
{
int x;
-
-
-
return x;
}

como llamo a la función dentro del main para que me imprima ese valor devuelto?

main()
{
-
-
-
printf("El valor es que devuelve la funcion es %d", Funcion(a, b, c));
return 0;
}

lo hago así y no me sale, de qué forma se llama correctamente a la función?

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: return en función
« Respuesta #1 en: Domingo 16 de Agosto de 2009, 23:59 »
0
Deberia funcionar ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

player_

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: return en función
« Respuesta #2 en: Lunes 17 de Agosto de 2009, 01:25 »
0
Funcion (a, b, c) devuelve el valor de x, si yo la llamo invocándola de esa forma, al hacer

printf("%d", Funcion (a, b, c));

aunque x no aparezca en los parámetros de la función, debería imprimir el valor que devuelve, no?? Pues no me lo devuelve... :hitcomp:

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: return en función
« Respuesta #3 en: Lunes 17 de Agosto de 2009, 08:14 »
0
Algo mas estara mal ... deja una EXPRESION MINIMA del codigo (compilable) pero con el error y lo vemos ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

jfmarg

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: return en función
« Respuesta #4 en: Domingo 27 de Diciembre de 2009, 04:58 »
0
hola! el código es correcto, simplemente cuando quieras imprimir el valor return de una función hacelos con los parámetros que le enviaste. Te dejo un ejemplo básico.
Código: C
  1.  
  2. #include<stdio.h> /*Libreria estandar imput-output*/
  3. int numero1, numero2, resultado; /*variables enteras*/
  4.  
  5. int NumeroMayor (int x, int y); /*prototipo de función*/
  6.  
  7. main (){ /*inicio del programa principal*/
  8.      
  9.      printf("Desarrola una funci%cn que dado dos valores ingresados distintosndevuelve el mayor de ellos.-n", 162);
  10.      
  11.      etiqueta_ingreso: /*etiqueta para el contro de ingrso*/
  12.      printf("nIngrese un numero entero: "); /*Ingresa un numero*/
  13.      scanf("%d", &numero1); /*almaceno el numero en numero1*/
  14.      
  15.      printf("nIngrese un numero entero distinto del primero: ");
  16.      scanf("%d", &numero2);
  17.      
  18.      /*verificio que los numero ingresados sean distintos*/
  19.      if (numero1==numero2){ /*si los numeros son iguales*/
  20.      printf("Los n%cmeros ingresados son igual. Intente nuevamente.n", 163);
  21.      goto etiqueta_ingreso;
  22.      }else{ /*si los numero son distintos*/
  23.      NumeroMayor (numero1, numero2);
  24.      } /*fin bloque if de control*/
  25.      
  26.      printf("nEl mayor de los numeros ingresados es: %dn", NumeroMayor(numero1,numero2));
  27.      system ("pause");
  28.      }/*fin del programa principal*/
  29.      
  30. int NumeroMayor (int x, int y){ /*función calcula el numero mayor de uno dado*/
  31.     int retorno;
  32.     if (x>y){ /*si numero 1 es mas chico que numero2*/
  33.     retorno=x;
  34.     }else{ /*si numero 2 es mas chico que numero 2*/
  35.     retorno=y;
  36.          }
  37.     printf("el valor de retorno es: %dn", retorno);
  38.     return retorno;
  39.     } /*fin de la funcion*/
  40.  
  41.  
  42.  

cabeto14

  • Nuevo Miembro
  • *
  • Mensajes: 17
  • Nacionalidad: co
    • Ver Perfil
Re: return en función
« Respuesta #5 en: Domingo 27 de Diciembre de 2009, 14:17 »
0
prueba a ver si cambiando la funcion asi...:
Código: C++
  1.  
  2. int funcion (int a, int b)
  3. {
  4.     if (a<b)
  5.     {
  6.       return b;
  7.     }
  8.     else
  9.     {
  10.         return a;
  11.     }
  12. }
  13.  
  14.