Estou no 3° período de tecnologia em informática na universidade tuiuti do paraná e tenho um trabalho pra apresentar no dia 13 de junho e so falta implementar uma busca binária em um vetor mas na chamada da função não consigo imprimir o que quero alguém pode me ajudar com isso????????
o codigo fonte e esse:
so falta o case 4 pra implementar e não consigo fazer funcionar alguém me ajuda!!!!!!
Pergunta
joaoponeis
ola!!!!!!
Estou no 3° período de tecnologia em informática na universidade tuiuti do paraná e tenho um trabalho pra apresentar no dia 13 de junho e so falta implementar uma busca binária em um vetor mas na chamada da função não consigo imprimir o que quero alguém pode me ajudar com isso????????
o codigo fonte e esse:
so falta o case 4 pra implementar e não consigo fazer funcionar alguém me ajuda!!!!!!
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//----------------------------------------------------------------
#define Tam_Max 5
/*---------------------DECLARAR ITEM DA LISTA-------------------*/
typedef struct{
int cod;
int tel;
char nome [20];
char end [50];
}Titem;
/*---------------------DECLARAR LISTA---------------------------*/
typedef struct{
int ini;
int fim;
Titem dados [Tam_Max];
}Tlista;
/*---------------------INICIA A LISTA---------------------------*/
void iniciolista (Tlista *i){
i->ini=0;
i->fim=0;
}
/*---------------------VERIFICAR SE A LISTA ESTA VAZIA----------*/
bool listavazia (Tlista *v){
if (v->ini==v->fim)
return true;
else
return false;
}
/*---------------------INSERIR ITEM NA LISTA--------------------*/
bool insere_lista(Tlista *lista,Titem x)
{
if(lista -> fim < Tam_Max)
{
lista -> dados[lista -> fim] = x;
lista -> fim ++;
return true ;
}
else
return false;
}
/*---------------------REMOVER ITEM DA LISTA-------------------*/
bool remove_lista (Tlista *lista,Titem *x,unsigned int posicao)
{
if(( posicao > Tam_Max)||( posicao > lista ->fim))
return false;
else
{
*x = lista -> dados[posicao];
lista -> fim --;
for(int i = posicao;i <= lista -> fim;i++)
{
lista -> dados = lista -> dados[i+1];
}
return true;
}
}
/*---------------------IMPRIMIR LISTA---------------------------*/
void imprime_lista(Tlista *l)
{
int aux;
for (aux =l->ini;aux< l->fim; aux++)
{
printf ("posicao: %d \n",aux);
printf ("codigo: %d \n",l->dados[aux].cod);
printf ("nome: %s \n",l->dados[aux].nome);
printf ("endereco: %s \n",l->dados[aux].end);
printf ("telefone: %d \n\n",l->dados[aux].tel);
}
}
//---------------------------------------------------------------
int Busca_Binaria(Tlista *L, int x, int meio)
{
int inf, sup;
meio = 0;
inf = L->ini;
sup = L->fim-1;
while (inf <= sup){
meio = (inf + sup)/2;
if(x > L->dados[meio].cod)
inf = meio + 1;
else
if(x < L->dados[meio].cod)
sup = meio - 1;
else
return meio;
}
return -1;
}
/*---------------------EXECUCAO----------------------------------*/
void main()
{
Tlista l,ll;
Titem itm;
int menu,x,aux,meio ;
aux=1;
iniciolista(&l);
do {
system ("cls");
printf("digite a opcao:\n");
printf("1-cadastro lista.\n");
printf("2-remove lista.\n");
printf("3-imprime na lista.\n");
printf("0-para sair.\n");
scanf("%d",&menu);
switch (menu)
{
case 1 : printf("digite nome:");
fflush(stdin);
scanf("%[^\n]s",itm.nome);
printf("digite endereco:");
fflush(stdin);
scanf("%[^\n]s",&itm.end);
printf("digite tel:");
scanf("%d",&itm.tel);
itm.cod = aux;
aux ++;
if (insere_lista(&l,itm))
{
printf("\nelemento inserido com sucesso! \n");
imprime_lista(&l);
}
else
printf("\nnão foi possivel inserir \n");
system("pause");
break;
case 2 :if (listavazia(&l))
{
printf("não E POSSIVEL REMOVER, LISTA VAZIA!");
system ("pause");
}
else
{
printf("digite a posicao do elemento a remover:\n");
imprime_lista(&l);
scanf("%d",&x);
if(remove_lista(&l,&itm,x))
printf("O cadastro de %s foi removido \n",itm.nome);
else
printf("não foi possivel remover \n");
system ("pause");
}
break;
case 3 : imprime_lista(&l);
system ("pause");
break;
case 4:printf("digite a codigo :\n");
imprime_lista(&l);
scanf("%d",&x);
}
}
while (menu != 0);
}
Link para o comentário
Compartilhar em outros sites
6 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.