2.Por qué razón se genera error al incluir en un programa las siguientes funciones? (Para responder a la pregunta debe crear un programa de ejemplo donde pruebe dichas funciones. Incluya dicho programa como parte de su respuesta)
int mayor(int a, int b) {
if (a>b)
return a;
return b;
}
int mayor(int m, int n) {
return (n>m ? n : m);
}
- 💬 Foros
- Software
- Programación
funcion sobrecargada
Aunque no hayas dicho ni un simple gracias, y encima dando órdenes para que incluyamos el programa en la respuestas .... te voy a contestar.
Cuando hay varias funciones con el mismo nombre y diferentes parámetros, el compilador sabe qué función tiene que usar en función de los parámetros usados, pero aquí las dos funciones tienen los mismos parámetros. En este caso a mi no me deja compilar cuando incluyo la segunda función porque ya está la primera función.
¿Copia y pega de un problema?
Eso y nada es lo mismo.
¿Qué error indica? ¿Cómo se pasan los valores? ¿Se declaran las variables?
Para responder a mis preguntas, debes incluir la mayor cantidad de código posible y no sólo dos funciones (que espero que no estén juntas). Doy por sentado que has usado ambas independientemente y que aquí sólo lo pones a modo de ejemplo.
Nunca pidas que te hagan los deberes por obligación porque obtendrás más rechazo que ayuda. Tampoco está de más decir qué lenguaje se está usando, aunque algunos lo reconozcamos con tres lineas de código.
Saludos.
Nunca pidas que te hagan los deberes por obligación porque obtendrás más rechazo que ayuda.
Él no lo ha pedido de propia voluntad. Simplemente ha fusilado el enunciado del algoritmo tal y como se lo han dictado/escrito en su clase. Menudo crack. Este debe ser de los que los viernes por la noche intenta ligar en la disco alardeando de ingeniero informático, y el resto de la semana de hacker en facebook y chats.
Se que es un C/P del ejercicio, pero quien entra y lo lee, puede interpretarlo de forma que es algo que si ha escrito. Mi respuesta, no es más para que vea lo que puede significar el C/P sin currarse un poco la pregunta, y sobre todo, que se vea un poco de interés en haber intentado resolverlo antes. ;)
Saludos.
XD No creo que alardear de ingeniero informático sea la mejor forma de ligar en una disco.
Está la cosa muy mala...
Pero vamos, que un ingeniero informático es ingeniero como el que más, le pese a quien le pese.
Bandaancha. Solucionando deberes del cole desde 2001.
Porque las cabeceras de los métodos son iguales...
Programa ejemplo
int main(){
int a=5;
int b=6;
int c=mayor(a,b); //aquí no va a saber cuál invocar ...
return 0;
}
En la primera función:
int mayor(int a, int b) {
if (a>b)
return a;
return b;
}
Estás intentando devolver dos enteros cuando sólo puedes retornar uno.
Por la función, tiene pinta de faltar simplemente un else
int mayor(int a, int b)
{
if (a>b)
return a;
else
return b;
}
En la segunda función usa un operador ternario,pero hay un fallo de sintaxis con el paréntesis, el paréntesis sólo debe comprender el primer parámetro que es el condicional.
La forma correcta sería esta:
int mayor(int m, int n)
{
return (n>m) ? n : m;
}
deberes y ingenieros-tecnicos informaticos vagos no gracias.