Test Foro de elhacker.net SMF 2.1

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


#include <stdio.h>
#include <stdlib.h>


int mayor(int num){

int main(){

int num1, num2, num3;
int max, mayor;

printf("Introduce un numero: ");
scanf("%d",&num1);
printf("Introduce un numero: ");
scanf("%d",&num2);
printf("Introduce un numero: ");
scanf("%d",&num3);

max = mayor(num1, num2);

printf("El mayor es: %d %d", mayor(max, num3));


  system("PAUSE");
  return 0;
}


// FUNCION
int mayor(int num){


if (num1 > num2){
        return num1;
else
        return num2;
}



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
Cita de: 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


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

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int mayor(int n1,int n2);/*aqui tenias"{" en lugar de ;*/

int main(){
 int num1, num2, num3;
 int max; /*<==aqui esta de mas "mayor"*/
 printf("Introduce un numero: ");
 scanf("%d",&num1);
 printf("Introduce un numero: ");
 scanf("%d",&num2);
 printf("Introduce un numero: ");
 scanf("%d",&num3);
 max = mayor(num1, num2);
 printf("El mayor es: %d \n", mayor(max, num3));/*y aqui tenias dos %d */
 system("PAUSE");
 return 0;
}
// FUNCION
int mayor(int n1,int n2){
if (n1 > n2)
       return n1;
else
       return n2;
}


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

Código (cpp) [Seleccionar]


#include <stdio.h>
#include <stdlib.h>

int mayor(int n1,int n2,int n3);

 int main(){

 int num1, num2, num3;
 int max;

 printf("Introduce un numero: ");
 scanf("%d",&num1);
 printf("Introduce un numero: ");
 scanf("%d",&num2);
 printf("Introduce un numero: ");
 scanf("%d",&num3);
 max = mayor(num1, num2,num3);
 printf("El mayor es: %d \n", max);
 system("pause");
 return 0;
}
// FUNCION
int mayor(int n1,int n2,int n3){
 if ((n1= n1>n2 ? n1:n2)>(n3))
   return n1;
 else
 return n3;
}


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