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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Mensajes
Páginas: 1 ... 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [32] 33
311  Programación / Programación C/C++ / Re: BUSCAR EL VALOR MAXIMO Y MINIMO DEL ARBOL BINARIO en: 27 Julio 2014, 23:03 pm
Alternativamente, dado que siempre recorres hacia la izquierda o derecha para una u otra función, sugiero hacer un ciclo, no invocar recursivamente, deteniendose justo al darse cuenta que no hay mas nodos que visitar a continuación.

Ambas (recursiva o no) son soluciones sencillas, pero la recursiva podría "morir" por hacer crecer el stack indefinidamente, para árboles más grandes.

Ahora, todo esto funciona solo si el árbol binario es un árbol de busqueda binaria, pues si fuera solo binario, irse a la izquierda o derecha no garantiza encontrar el mínimo o máximo y en ese caso, tal vez la versión recursiva sea más sencilla que su equivalente no recursiva.
312  Programación / Programación C/C++ / Re: BUSCAR EL VALOR MAXIMO Y MINIMO DEL ARBOL BINARIO en: 27 Julio 2014, 21:04 pm
tal vez max() deberia tomar la rama derecha, no la izquierda.
313  Programación / Programación C/C++ / Re: [Ayuda] Redondeo en C++ en: 22 Julio 2014, 22:13 pm
Ojo que  Redondeo != Truncado, por lo que la suma de n2 / 2 es importante
314  Programación / Programación C/C++ / Re: [Ayuda] Redondeo en C++ en: 22 Julio 2014, 20:57 pm
n2 es siempre una potencia de 10?

Si es asi esto sugiero:
- Sumar la mitad de n2 a n1
- Calcular el resto de la division entre n1 y n2 usando el modulo
- Restarle ese resto a n1

1424, 10:
- 1424 + 5 = 1429
- 1429 % 10 = 9
- 1429 - 9 = 1420

2636, 100:
- 2636 + 50 = 2686
- 2686 % 100 = 86
- 2686 - 86 = 2600

315  Programación / Programación C/C++ / Re: Mi programa que dibuja un cuadrado en: 22 Julio 2014, 07:00 am
¿que ocurre si se ingresan numeros negativos?
316  Programación / Programación C/C++ / Re: Mi programa que dibuja un cuadrado en: 21 Julio 2014, 20:33 pm
¿Por que solicitas ancho y largo del cuadrado, si ellos son siempre iguales?
317  Programación / Programación C/C++ / Re: Teoría + Problema Propuesto en: 21 Julio 2014, 02:40 am
Sugiero que pongas las entradas y salidas que obtienes versus la que esperas. Decir que obtienes "lo mismo" no es clarificador, en mi opinion.
318  Programación / Programación C/C++ / Re: Double en C en: 20 Julio 2014, 17:00 pm
La especificacion del lenguaje indica que sizeof(float) <= sizeof(double), esto permite que algunos compiladores tomen la opcion de hacerlos de igual tamaño y otros hacer que el double use mayor tamaño.

Un codigo escrito leyendo un double usando %f es un codigo no portable de un compilador a otro.

319  Programación / Programación C/C++ / Re: Double en C en: 19 Julio 2014, 12:08 pm
Lo que un compilador tiene que implementar es que
sizeof float sea menor o igual a sizeof double.

Sospecho que en ese compilador el primer sizeof es menor estricto que el segundo, lo que hace razonable el comportamiento que obtienes.
320  Programación / Programación C/C++ / Re: problema con array de punteros a cadenas en: 11 Julio 2014, 21:39 pm
Creo que el codigo ofrecido tiene un error adicional al hacer una suposición incorrecta. La suposición es esta:
  
No ser mayor que el máximo actual convierte a un numero en el menor del conjunto.

Si los nros fueran { 0, 2, 1, 7 }

La logica del código anterior se seguiría así:

  • El máximo y mínimo es el 0 inicial.
  • 2 es > 0, -> ahora 2 es el maximo, el minimo no cambia
  • 1 no es > 2 -> ahora 1 es el minimo (lo que es falso).
Ademas, el codigo mantiene variables que pueden ser eliminadas.
Lo único necesario, creo yo, es mantener los indices del mayor o menor.

Propongo estas correcciones, imayor e imenor son los indices de los valores mayor y menor. No es necesario guardar el valor mayor o menor, porque eso se obtiene usando el arreglo que se recibe como parametro y esos índices.

Código
  1. #include <stdio.h>
  2.  
  3. void mayor_menor( int votos[] )
  4. {
  5.    int imayor = 0, imenor = 0;
  6.    int contador = 0;
  7.  
  8.    for( contador = 1 ; contador < 4 ; contador++ ) {
  9.        if ( votos[contador] > votos[imayor]) {
  10.            imayor = contador ;
  11.        }
  12.        else
  13.        if ( votos[contador] < votos[imenor]) {
  14.            imenor = contador;
  15.        }
  16.    }
  17.  
  18.    printf( "Valor mayor: %d\n", votos[imayor] );
  19.    printf( "Valor menor: %d\n", votos[imenor] );
  20. }
  21.  
  22. int main() {
  23.    int votos[] = { 0, 2, 1, 7 };
  24.  
  25.    mayor_menor( votos );
  26. }
  27.  

Esto se puede ver en ejecución es este link: http://goo.gl/24qbNK
Páginas: 1 ... 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [32] 33
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines