elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  duda en c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: duda en c  (Leído 1,530 veces)
MARIOAUGUSTO

Desconectado Desconectado

Mensajes: 1


Ver Perfil
duda en c
« en: 13 Junio 2011, 13:12 pm »

quisiera saber si alguien tiene una mejor forma de hacer la siguiente funcion
7.   Escriba un programa que tenga la función Max misma que devuelve el número mayor de dos enteros
#include<stdio.h>
#include<conio.h>
int max(int x, int y)// declaracion del nombre de la sus parametros y el valor que devuelve
{ if (x>y)
   return x;
   else // cuerpo de la funcion deonde se busca el mayor de dos numeros
   return y;
}
// ahora ponemos a funcionar la función
int main()
{
    int m=8;
    int  n=89;
do {
scanf ("%d %d", &m,&n) ;
printf("Maximo de %d,%d es %d\n",max(m, n)); /*llamada a max*/
}
while (m != 0);
return 0;
}
EJEMPLO DOS
#include<stdio.h>
#include<conio.h>
int max(int x, int y)// declaracion del nombre sus parametros y el valor que devuelve
{ if (x>y)
   return x;
   else // cuerpo de la funcion deonde se busca el mayor de dos numeros
   return y;
}
// ahora ponemos a funcionar la funcion
int main()
{
    int numero1;
    int numero2;
    int maximo=0;
    printf("por favor introduzca un numero\n");
    scanf("%d",&numero1);
    printf("por favor introduzca un numero\n");
    scanf("%d",&numero2);
    maximo = int max(int x,int y);
    printf("el numero maximo es %d\n \a",maximo);
    getch();
}


En línea

Dark Invader

Desconectado Desconectado

Mensajes: 111


Lucha hasta el final para conseguir tu objetivo.


Ver Perfil
Re: duda en c
« Respuesta #1 en: 13 Junio 2011, 23:16 pm »

Mira a ver si esto es lo que buscas,no puedes pasarle a una funcion unos parametros que son variables,pero puedes jugar con los punteros para hacerlo:
Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3. void max(int *x, int *y)// declaracion del nombre de la sus parametros(pero ahora transformo las direcciones de memoria de los parametros en numeros enteros)
  4. { if (*x>*y)
  5.   printf ("el maximo es %d",*x);
  6.   else // cuerpo de la funcion deonde se busca el mayor de dos numeros
  7.   printf ("el maximo es %d",*y);
  8. }
  9. // ahora ponemos a funcionar la función
  10. int main()
  11. {
  12.    char respuesta;
  13.    int m,n;
  14.  
  15. do {
  16.    printf("\nintroduzca dos numeros y se mostrara el mayor: ");
  17. scanf ("%d %d", &m,&n) ;
  18. setbuf ( stdin, NULL );
  19. max(&m, &n); //pasar la direccion de memoria de las variables por parametro
  20. printf("\n¿quiere hacer otra comprobacion?");
  21. scanf("%c",&respuesta);
  22. setbuf ( stdin, NULL );
  23.  
  24. }
  25. while ((respuesta == 's') || (respuesta == 'S'));
  26. return 0;
  27. }

A mi este me va perfecto.

Edito:mejora del codigo.

Salu2


« Última modificación: 13 Junio 2011, 23:22 pm por Dark Invader » En línea

bettu


Desconectado Desconectado

Mensajes: 923


Ver Perfil
Re: duda en c
« Respuesta #2 en: 13 Junio 2011, 23:31 pm »

Código:
maximo = int max(int x,int y);

Esto es incorrecto. Has declarado la función int max (int x, int y) arriba, porque lo pones aquí otra vez?

El programa de ejemplo dos que has puesto funcionaría bien si lo arreglaras así:

Código:
maximo = max(numero1, numero2)

Saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pequeña duda con un comando batch (NUEVA DUDA RELACIONADA)
Scripting
revenge1252 9 9,749 Último mensaje 13 Febrero 2008, 21:41 pm
por revenge1252
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines