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


 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Esta funcion recursiva esta bien elaborada
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Esta funcion recursiva esta bien elaborada  (Leído 1,604 veces)
darkxxx

Desconectado Desconectado

Mensajes: 85


Ver Perfil
Esta funcion recursiva esta bien elaborada
« en: 16 Noviembre 2008, 03:25 »

Tengo una duda estoy practicando el tema referente a funciones recursivas y estoy haciendo un ejercicio de un tutorial que dice dado un vector hallar el valor maximo del vector y lo hice de la siguiente manera recursivamente

Código:
#include <stdio.h>

int maximo(int*,int,int,int);

int main() {
int a[] = {24,64,31,83,22};

printf("Maximo: %d",maximo(a,5,0,0));

return 0;
}


int maximo(int* vector,int tam,int cont,int temp) {
if(tam-1 == cont) {
if(vector[cont] > temp) {
temp = vector[cont];
}
return temp;
}
else {
if(vector[cont] > temp) {
temp = vector[cont];
}
return maximo(vector,tam,cont+1,temp);
}
}

de una hace lo que se quiere que es buscar el mayor valor del vector ahora lo que no se es si es la mejor forma ya que le estoy pasando 4 parametros a la funcion y no se no me termina de convencer de la forma que lo hice


« Última modificación: 16 Noviembre 2008, 03:28 por darkxxx » En línea

ҒrεακΠιи∂

Desconectado Desconectado

Mensajes: 184



Ver Perfil
Re: Esta funcion recursiva esta bien elaborada
« Respuesta #1 en: 16 Noviembre 2008, 04:12 »

Buenas

Creo que esto deberia funcionar, pero pruebalo mejor
Código
  1. #define max(a,b)  (a < b ? b : a)
  2.  
  3. int maximo( int v[], int size)
  4. {      
  5.    return ( --size ?  max(v[0], maximo(v+1, size)) : v[0]);
  6. }

Salu2, FreakMind


« Última modificación: 16 Noviembre 2008, 15:32 por ҒrεακΠιи∂ » En línea

Connoisseurs of C semantics find C++ inferior to ++C
darkxxx

Desconectado Desconectado

Mensajes: 85


Ver Perfil
Re: Esta funcion recursiva esta bien elaborada
« Respuesta #2 en: 16 Noviembre 2008, 04:45 »

Buenas

Creo que esto deberia funcionar, pero pruebalo mejor
Código
  1. #define max(a,b)  (a < b ? b : a)
  2.  
  3. int maximo( int v[], int size)
  4. {      
  5.    return (size ? max(v[0], maximo(++v, --size)) : v[0]);
  6. }

Salu2, FreakMind

si lo mas probable es que funcione pero no se quizas me parece un poco ineligible del modo que lo hicistes
En línea

ҒrεακΠιи∂

Desconectado Desconectado

Mensajes: 184



Ver Perfil
Re: Esta funcion recursiva esta bien elaborada
« Respuesta #3 en: 16 Noviembre 2008, 17:27 »

Buenas

Tampoco es para tanto che... es una linea.

Salu2, FreakMind
En línea

Connoisseurs of C semantics find C++ inferior to ++C
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines