nickolson wrote:
ola pessoal me ajudem a construir um programa em linguagem c q leia um vetor de elementos ordenados que use uma função booleana recursiva que efetue pesquisa binária sobre um vetor de inteiros, que permita verificar se um valor pesquisado existe ou não no vetor se nao existir informar com uma mensagem. valeu
TENHO ESSE RASCUNHO AQ MAS NUM TA LEGAL AINDA NAO, RODEM ELE AI E ME MANDEM ELE COM OS AJUSTES POR FAVOR.
#include <stdio.h>
#include <stdlib.h>
int busca (int ch, int e, int d, int v[]){
if (e == d-1)
return d; // base da recursao
else {
int m = (e + d)/2;
if (v[m] < ch)
return busca (ch, m, d, v);
else
return busca (ch, e, m, v);}
}
int main(void) {
int *vet, num, chave, i, ini, fim;
printf ("\nNumero de Elementos: “); // quantidade de elementos do vetor
scanf (”%d", &num);
vet = (int *) malloc (sizeof (int) * num); // alocando memoria para o vetor
printf (“Entre apenas com numeros inteiros positivos em ordem crescente: “);
for (i = 0; i < num; i++){
scanf (”%d”, &vet[i]); // carregando o vetor de numeros
if (vet[i] < 0)
printf ("\nErro: Digite apenas numeros positivos crescentes!");
}
printf (“Numero que deseja buscar no vetor: “);
scanf (”%d”, &chave);
if (chave == busca (chave, ini, fim, vet))
printf (“Numero encontrado \n%d”, busca (chave, ini, fim, vet));
printf (“Numero nao consta nesta sequencia!”);
return EXIT_SUCCESS;