Programación General > C/C++
return en función
player_:
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:
Deberia funcionar ...
player_:
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:
Algo mas estara mal ... deja una EXPRESION MINIMA del codigo (compilable) pero con el error y lo vemos ...
jfmarg:
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 --- #include<stdio.h> /*Libreria estandar imput-output*/int numero1, numero2, resultado; /*variables enteras*/ int NumeroMayor (int x, int y); /*prototipo de función*/ main (){ /*inicio del programa principal*/ printf("Desarrola una funci%cn que dado dos valores ingresados distintosndevuelve el mayor de ellos.-n", 162); etiqueta_ingreso: /*etiqueta para el contro de ingrso*/ printf("nIngrese un numero entero: "); /*Ingresa un numero*/ scanf("%d", &numero1); /*almaceno el numero en numero1*/ printf("nIngrese un numero entero distinto del primero: "); scanf("%d", &numero2); /*verificio que los numero ingresados sean distintos*/ if (numero1==numero2){ /*si los numeros son iguales*/ printf("Los n%cmeros ingresados son igual. Intente nuevamente.n", 163); goto etiqueta_ingreso; }else{ /*si los numero son distintos*/ NumeroMayor (numero1, numero2); } /*fin bloque if de control*/ printf("nEl mayor de los numeros ingresados es: %dn", NumeroMayor(numero1,numero2)); system ("pause"); }/*fin del programa principal*/ int NumeroMayor (int x, int y){ /*función calcula el numero mayor de uno dado*/ int retorno; if (x>y){ /*si numero 1 es mas chico que numero2*/ retorno=x; }else{ /*si numero 2 es mas chico que numero 2*/ retorno=y; } printf("el valor de retorno es: %dn", retorno); return retorno; } /*fin de la funcion*/
Navegación
[#] Página Siguiente
Ir a la versión completa