int bbin(char palabra[50], int inicio, int final){ char dicc[] = "lugares.txt"; int medio; char leida[50]; FILE *lugar;
printf ("Entro con un valor inicial %d, y uno final %d\n", inicio, final);
if ((dic = fopen(lugar,"r+")) == NULL){ printf("Hubo un error en la apertura del archivo\n"); fclose(lugar); }
medio = (final + inicio) / 2; if ( inicio > final ) return -1; printf ("El medio es %d\n",medio); fseek(dic, medio*50, 0); if (!fscanf(dic, "%s",leida)){ printf("No se puede leer la linea del archivo\n"); fclose(dic); } printf ("La palabra leida es %s\n", leida); if(!strncmp (palabra, leida, strlen(palabra))) return medio; else if( strncmp (palabra, leida, strlen(palabra)) < 0) return bbin(palabra, inicio, medio-1); else if( strncmp (palabra, leida, strlen(palabra)) < 0) return bbin(palabra, medio+1, final); }
|