Shibata 0 Denunciar post Postado Outubro 22, 2008 Beleza, Sou novo em Programação, e sei que minha pergunta pode estar sendo ridícula, mas não consigo fazer essa programação. Preciso de uma ajuda referente ao programa abaixo, ele deveria procurar um numero x digitado e verificar em que posição ele se encontra ou se não existe na lista (no caso de 1 á 11). //Binaria #include <conio.h> #include <stdio.h> main() { int i; int x; int v[10]; int achou; int inicio; int final; (achou = 0); (inicio = 1); (final = 11); for (i=0; i<10; i++) { v[i]=(i+1); } printf ("digite um numero inteiro: "); scanf ("%d",&x); for (i=0; i<10; i++) do { if(v[(inicio + final)/2 > x]); { final = (inicio + final)/2; } if(v[(inicio + final)/2 < x]); { inicio = (inicio + final)/2; } } while (achou == 0); if(v[(inicio + final)/2 == x]) { printf ("o valor %d esta na posicao: %d",v[i],i); } (achou = 1); getch(); } Valeu Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Outubro 22, 2008 num é + facil fazer assim: int achou = -1; for(i=0;i<10;i++) if (num_digitado == vet[i]) achou = i; if (achou != -1) printf("Foi encontrado na posicao %d", achou); else printf("Numero nao encontrado"); + vamos considerar no código acima q ele vai pegar a ultima ocorrencia do numero.. []'s Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Outubro 22, 2008 Quit, pesquisa binária != pesquisa seqüencial. A pesquisa binária assume o vetor ordenado e particiona o conjunto em metades p/ localizar mais rápido. P/ quê tanta chave e parênteses?? Preste atenção porque você tem um if vazio. int x; // NOME MUITO SIGNIFICATIVO.... NÃO COMECE PROGRAMANDO ASSIM. #include <stdio.h> #define MAX 10 int main() { int v[MAX]; int inicio = 0; int final = MAX-1; int meio; for (int i=0; i<MAX; i++) v[i]=(i+1); printf ("digite um numero inteiro: "); int chave; scanf ("%d",&chave); while (inicio <= final) { meio = (inicio+final)/2; if(chave < v[meio]) final = meio-1; else if(chave > v[meio]) inicio = meio+1; else break; } if (inicio > final) puts("valor não encontrado."); else printf ("o valor %d esta na posicao: %d",chave,meio); } Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Outubro 22, 2008 opa opa, eu li + nem ....!!! :lol: Compartilhar este post Link para o post Compartilhar em outros sites
Shibata 0 Denunciar post Postado Outubro 22, 2008 Valeu Pessoal!!! Vou tentar implementar... Pelo que estou vendo parace ser bem mais fácil do que como eu tentei fazer, mas nem percebi onde eu errei... acho que compliquei demais... rsrsrsrs Quit o de cima alí é Pesq. Sequencial né? Mas valeu pela força Galera. Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Outubro 22, 2008 disse a Isis q sim http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites