Ir ao conteúdo

Chamar função com ponteiro


Arthur2010

Posts recomendados

Postado

Olá galera, tenho uma função de busca binaria, mas não estou conseguindo chama-la no main:

#include <stdio.h>

#define TAMANHO 6

int PesquisaBinaria (int *v, int n , int elem)
{
int esq = 0;
int dir = n-1;
int meio;
while (esq <= dir)
{
meio = (esq+dir)/2;
if (elem == v[meio])
return meio;
else if (elem < v[meio])
dir = meio-1;
else
esq = meio+1;
}
return -1; //não achou
}

int main() {

int v[TAMANHO] = {1,2,5,20,45,60};

BuscaBinaria(v,TAMANHO,5);


getch();
return 0;
}

Obrigado!

Postado

Aiiii QUE FALTA DE ATENÇÃO rs rs

me desculpe por essa mancada, mas enfim, no main ali na parte dos parametros está certo?

Poderia me ajudar a mostrar na tela então?

Obrigado!

Postado

Então, tentei fazer com recursividade mas não esta dando certo na hora que acha ou não acha o elemento:

#include <stdio.h>

#define TAMANHO 6

int PesquisaBinaria (int *v, int n , int elem)
{
int esq = 0;
int dir = n-1;
int meio;

while (esq <= dir)
{
meio = (esq+dir)/2;
if (elem == v[meio]){
printf("\nachou!");
return meio;}
else if (elem < v[meio])
dir = meio-1;
else
esq = meio+1;
}
printf("\nnao achou!");
return -1; //não achou
}

int PesquisaBinariaRecursiva (int v[],int elem, int esq, int dir) {
if (esq == dir-1) return dir; // base da recursão
else {
int meio = (esq + dir)/2;
if (v[meio] < elem)
{
printf("achou");
return PesquisaBinariaRecursiva (elem, meio, dir, v);
}
else
{
printf("nao achou");
return PesquisaBinariaRecursiva (elem, esq, meio, v);
}
}
}

int main() {

int v[TAMANHO] = {1,2,5,20,45,60};


printf("Pesquisa Binaria\n");

PesquisaBinaria(v,TAMANHO,5);
PesquisaBinariaRecursiva(v,5,1,59);

getch();
return 0;
}

Obrigado!

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...