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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Busqueda binaria con palabras
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Busqueda binaria con palabras  (Leído 3,149 veces)
soez

Desconectado Desconectado

Mensajes: 76



Ver Perfil
Busqueda binaria con palabras
« en: 3 Agosto 2010, 04:10 am »

A ver si me podeis echar una mano porque me stoy volviendo loco con esto xD, es respecto a una busqueda binaria pero con palabras. Os dejo el codigo a ver si veis algo, o algun consejo de como hacerlo. Thanks

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main()
  5. {
  6. char palabra[20][20];
  7. char busqueda[20]="";
  8. char palabra_aux[20];
  9. int i, k, h, primero=0, ultimo=19, centro=10;
  10. for(i=0;i<20;i++){
  11.           strcpy(palabra[i],"");
  12.    }// limpia el array
  13.    for(i=0;i<5;i++){
  14.          printf ("Introduce una palabra:");
  15.        scanf ("%s", &palabra[i]);                  
  16.    }// coge 5 palabras por teclado
  17.  
  18.    for(k=19;k>=0;k--)
  19.    {
  20. for(h=0;h<k;h++)
  21. {
  22. if((strcmp(palabra[h],palabra[h+1])>0) && (strcmp(palabra[h+1],"")!=0))
  23. {
  24.                        strcpy(palabra_aux,palabra[h]);
  25. strcpy(palabra[h],palabra[h+1]);
  26. strcpy(palabra[h+1],palabra_aux);
  27. }
  28. }
  29.  
  30.    }//ordena la lista
  31.  
  32. i=0;
  33. while(i<5)
  34.    {
  35.          printf ("Introduce una palabra para ver si se encuentra en la lista: ");
  36.          scanf ("%s", &busqueda);
  37.              primero=0;ultimo=19;
  38.          while ((primero<=ultimo) && (strcmp(busqueda,palabra[centro])!=0))
  39.          {
  40.                    centro=(primero+ultimo)/2;        
  41.                    if (strcmp(busqueda,palabra[centro])<0){primero=centro+1;}
  42.            if (strcmp(busqueda,palabra[centro])>0){ultimo=centro-1;}
  43.            printf("centro vale %d\n", centro);
  44.              }// busca en la lista
  45.          if (strcmp(busqueda,palabra[centro])==0) {printf ("La palabra se encuentra en la lista :)\n");}
  46.          else {printf ("La palabra no se encuentra en la lista :(\n");}
  47.              i++;
  48.    }// lo busca en 5 ocasiones
  49.  
  50. return 0;
  51. }
  52.  
  53.  

EDITO: Solucionado :) por fin, el array tiene que estar lleno o la busqueda al menos llena


« Última modificación: 3 Agosto 2010, 09:15 am por soez » En línea

01001010 01100001 01110110 01101001 01100101 01110010
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Busqueda binaria.
Java
NetJava 6 9,317 Último mensaje 28 Marzo 2011, 18:20 pm
por NetJava
Busqueda binaria de un array desordenado « 1 2 3 »
Programación C/C++
David_RM 21 17,287 Último mensaje 13 Noviembre 2011, 16:55 pm
por CobraCY
[C] Búsqueda binaria recursiva
Programación C/C++
BatchianoISpyxolo 3 19,458 Último mensaje 29 Octubre 2012, 23:08 pm
por flony
busqueda binaria en archivo
Programación C/C++
m@o_614 5 5,826 Último mensaje 2 Enero 2014, 00:34 am
por m@o_614
Busqueda binaria en JAVA con lectura de archivos sin ingresar datos desd teclado
Java
Hana29 3 2,567 Último mensaje 9 Diciembre 2015, 16:24 pm
por DarK_FirefoX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines