Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Busqueda Lineal [Duda]

Estas en el tema de Busqueda Lineal [Duda] en el foro de C/C++ en Foros del Web. Saludos. Bueno, hace un rato me puse a hacer el codigo de busqueda lineal en vectores: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C: Ver original #include <stdio.h>   ...
  #1 (permalink)  
Antiguo 01/04/2011, 11:28
Avatar de Geekne  
Fecha de Ingreso: marzo-2011
Ubicación: Donde estoy? Washing you.
Mensajes: 30
Antigüedad: 13 años, 1 mes
Puntos: 0
Busqueda Lineal [Duda]

Saludos. Bueno, hace un rato me puse a hacer el codigo de busqueda lineal en vectores:

Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. #define tf 10
  4. typedef vector[tf];
  5.  
  6. void busquedavector(vector vec1, int valor);
  7.  
  8. main() {
  9.  
  10. vector vector1={32,2,3,4,5,6,7,8,9,10};
  11. int valor, res=0;
  12. char r;
  13.  
  14.     do{
  15.  
  16.         printf("\nIngrese el valor que desea buscar: ");
  17.         scanf("%d", &valor);
  18.  
  19.         busquedavector(vector1, valor);
  20.    
  21.         printf("\nDesea buscar otro valor? (s/n) :");
  22.         scanf("%s", &r);
  23.  
  24.     if (r=='s'){
  25.         res=1;
  26.     }
  27.     else
  28.     {
  29.         res=0;
  30.     }
  31.  
  32.  
  33.     }while(res==1);
  34. }
  35.  
  36. void busquedavector(vector vec1, int valor)
  37. {
  38.  
  39. int i=0, band=0;
  40.  
  41.     while((i<tf)&&(band==0)){
  42.         i=i+1;
  43.         if(vec1[i]==valor){
  44.             band=1;
  45.         }
  46.     }
  47.    
  48.     if(band==1){
  49.         printf("\nSe encontro en valor en la posicion: %d\n\n", i);
  50.     }
  51.     else
  52.     {
  53.         printf("\nNo se encontro el valor deseado.\n\n");
  54.     }  
  55.            
  56.  
  57. }

Es de practica. y todo me va bien, pero cuando busco el valor 1 me imprime que no es encontrado. Porque sera?
__________________
Software libre rocks lml
  #2 (permalink)  
Antiguo 01/04/2011, 12:29
 
Fecha de Ingreso: junio-2005
Mensajes: 93
Antigüedad: 18 años, 10 meses
Puntos: 9
Respuesta: Busqueda Lineal [Duda]

EL ERROR ES PORQUE INCREMENTAS i antes de comparar el primer valor, esto provoca que nunca compara con el primer valor de la lista, aqui esta la correccion

    while((i<tf)&&(band==0)){
        if(vec1[i]==valor){
            band=1;
        }

i=i+1;
    }
  #3 (permalink)  
Antiguo 01/04/2011, 17:28
Avatar de Geekne  
Fecha de Ingreso: marzo-2011
Ubicación: Donde estoy? Washing you.
Mensajes: 30
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Busqueda Lineal [Duda]

Gracias por el dato
__________________
Software libre rocks lml

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:35.