Guest --GUARDIAO -- Postado Setembro 8, 2008 Denunciar Share Postado Setembro 8, 2008 GALERA ME AJUDA.... O PROGRAMA TA RODANDO SO QUE 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 recursaoelse{m= (i+d)/2;if (v[m]==ch)return v[m];if(v[m]<ch)return busca (ch, m+1, d, v);elsereturn 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;} Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest --GUARDIAO --
GALERA ME AJUDA.... O PROGRAMA TA RODANDO SO QUE 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
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.