Programación General > C/C++

 return en función

(1/2) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa