Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: sora_ori en 17 Febrero 2013, 12:52 pm



Título: Help! Calcular máximo de 3 numeros usando función
Publicado por: sora_ori en 17 Febrero 2013, 12:52 pm
Estoy realizando un programa que calcula el máximo de tres números usando una función que nos de el máximo de dos números


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5. int mayor(int num){
  6.  
  7. int main(){
  8.  
  9. int num1, num2, num3;
  10. int max, mayor;
  11.  
  12. printf("Introduce un numero: ");
  13. scanf("%d",&num1);
  14. printf("Introduce un numero: ");
  15. scanf("%d",&num2);
  16. printf("Introduce un numero: ");
  17. scanf("%d",&num3);
  18.  
  19. max = mayor(num1, num2);
  20.  
  21. printf("El mayor es: %d %d", mayor(max, num3));
  22.  
  23.  
  24.  system("PAUSE");
  25.  return 0;
  26. }
  27.  
  28.  
  29. // FUNCION
  30. int mayor(int num){
  31.  
  32.  
  33. if (num1 > num2){
  34.        return num1;
  35. else
  36.        return num2;
  37. }
  38.  


Al compilar me da error en "max = mayor(num1, num2);" que puede ser?



Saludos


Título: Re: Help! Calcular máximo de 3 numeros usando función
Publicado por: maxim_o en 17 Febrero 2013, 13:06 pm
// FUNCION
int mayor(int num){
 
 
if (num1 > num2){
        return num1;
else
        return num2;
}

El problema esta en la funcion, y el prototipo, tu en la funcion solo tienes un valor como parametro, cuando le estas pasando dos.....

Y luego dentro de la funcion no lo llamas como el parametro....

seria :

int mayor(int num1 , int num2){
 
 
if (num1 > num2){
        return num1;
else
        return num2;
}


Título: Re: Help! Calcular máximo de 3 numeros usando función
Publicado por: leosansan en 17 Febrero 2013, 17:09 pm
Estoy realizando un programa que calcula el máximo de tres números usando una función que nos de el máximo de dos números


Además de en los argumentos de la función, tienes varios errores menores que te comento en el código:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int mayor(int n1,int n2);/*aqui tenias"{" en lugar de ;*/
  5.  
  6. int main(){
  7.  int num1, num2, num3;
  8.  int max; /*<==aqui esta de mas "mayor"*/
  9.  printf("Introduce un numero: ");
  10.  scanf("%d",&num1);
  11.  printf("Introduce un numero: ");
  12.  scanf("%d",&num2);
  13.  printf("Introduce un numero: ");
  14.  scanf("%d",&num3);
  15.  max = mayor(num1, num2);
  16.  printf("El mayor es: %d \n", mayor(max, num3));/*y aqui tenias dos %d */
  17.  system("PAUSE");
  18.  return 0;
  19. }
  20. // FUNCION
  21. int mayor(int n1,int n2){
  22. if (n1 > n2)
  23.        return n1;
  24. else
  25.        return n2;
  26. }
  27.  

Aunque sería más guay calcular el máximo con una función que calcule el máximo de tres:

Código
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. int mayor(int n1,int n2,int n3);
  6.  
  7.  int main(){
  8.  
  9.  int num1, num2, num3;
  10.  int max;
  11.  
  12.  printf("Introduce un numero: ");
  13.  scanf("%d",&num1);
  14.  printf("Introduce un numero: ");
  15.  scanf("%d",&num2);
  16.  printf("Introduce un numero: ");
  17.  scanf("%d",&num3);
  18.  max = mayor(num1, num2,num3);
  19.  printf("El mayor es: %d \n", max);
  20.  system("pause");
  21.  return 0;
  22. }
  23. // FUNCION
  24. int mayor(int n1,int n2,int n3){
  25.  if ((n1= n1>n2 ? n1:n2)>(n3))
  26.    return n1;
  27.  else
  28.  return n3;
  29. }
  30.  

Saluditos!.


Título: Re: Help! Calcular máximo de 3 numeros usando función
Publicado por: Stakewinner00 en 17 Febrero 2013, 21:27 pm
Con esto ocupas menos código y también usas funciones.

http://www.cplusplus.com/reference/algorithm/max/ (http://www.cplusplus.com/reference/algorithm/max/)


Título: Re: Help! Calcular máximo de 3 numeros usando función
Publicado por: sora_ori en 18 Febrero 2013, 11:22 am
Muchas gracias por corregirme los errores de esa forma, lo he entendido mejor  ;-)



Saludos


Título: Re: Help! Calcular máximo de 3 numeros usando función
Publicado por: BatchianoISpyxolo en 18 Febrero 2013, 23:34 pm
Para un caso general (n datos) el problema se puede resolver con distintos algoritmos. Unos con unas ventajas y desventajas y otros con otras... Como ocurre siempre :P