Ir para conteúdo
Fórum Script Brasil
  • 0

BUSCA BINÁRIA COM RECURSIVIDADE


Guest --guardiao --

Pergunta

Guest --guardiao --

GALERA ME AJUDA.... não TOW CONSEGUINDO FAZER ELE BUSCAR A CHAVE.... O PROBLEMA TA NO ULTIMO IF ELSE....

#include <stdio.h>

#include <stdlib.h>

int busca (int ch, int i, int d, int v[]){

int m;

if (i==d)/* se ini==fim*/

return v[d]; // base da recursao

else{

m= (i+d)/2;

if (v[m]==ch)

return v[m];

if(v[m]<ch)

return busca (ch, m+1, d, v);

else

return busca (ch, i, m-1, v);

}

}

/*LEGENDA:

i-tamanho do vetor;

ini -posicao minima onde o elemento procurado pode estar;

fim - posicao maxima;

chave- elemento procurado;

vet- vetor onde a busca é feita;

meio-media da posicao onde o elemento pode estar*/

/* Programa Principal*/

int main (void){

int *vet, num, chave, i, ini, fim;

printf("\n==========================================================");

printf("\nNumero de elementos:\n"); /* quantidade de elementos do =vetor*/

scanf("%d",&num);

vet= (int*)malloc (sizeof(int)*num); /* alocando memória para o vetor*/

printf ("Digite apenas numeros inteiros positivos em ordem crescente:\n");

for (i=0;i<num; i++){

printf("Digite o %d numero:\n",i+1);

scanf("%d",&vet); /* carregando o vetor de numeros*/

if (vet<0)

printf ("\n erro:digite apenas numeros positivos crescente!\n");

}

printf ("\n numero que deseja buscar no vetor\n");

scanf ("%d", &chave);

if (chave==busca(chave, ini, fim-1, vet)) /*fim=num*/

printf("numero encontrado \n%d", chave);

else{

printf ("\n numero não consta nesta sequencia!\n");

printf("\n==========================================================");}

return EXIT_SUCCESS;

}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...