Ir ao conteúdo
  • Cadastre-se

Erro ao inserir funcao de pesquisa binaria em struct


Ir à solução Resolvido por Ewerton Costa,

Posts recomendados

Bom dia, 


Estou tentando fazer um trabalho onde tenho que inserir a funcao de PesquisaBinaria


Onde a funcao 


PesquisaBinaria que mostrará onde está localizado o campo vendedor da struct tp_tab1 


mais não to conseguindo, ja inlui os codigos mais está apresentando o erro:


[Error] invalid conversion from 'char*' to 'char' [-fpermissive]


Este erro ocorre logo no codigo que chama a pesbin


segue o cdigo de minha pesquisa e de onde aparece o erro


 


PESQUISA


Link para o comentário
Compartilhar em outros sites

Preciso ver as declarações de vet1 e vendedor, pois a que tudo indica vendedor está sendo passado como char* em vez de char como parâmetro.

 

Segue código main

int main(){
tp_tab1 vet1[10]={
{123,"Paula",741.92},{211,"Aline",541.99},
{299,"Diogo",814.29},{303,"Gilda",947.68},
{321,"Laura",986.72},{345,"Neide",775.51},
{390,"Oscar",919.84},{405,"Marta",789.65},
{405,"Diego",776.20},{425,"Bruna",620.03}};
 
tp_tab2 vet2[19]={
{211,"DVDs",5},{321,"DVDs",7},{299,"DVDs",5},
{345,"Mouse",7},{123,"Mouse",5},{303,"Mouse",3},
{303,"GPS",3},{415,"GPS",5},{321,"GPS",9},{405,"GPS",4},{390,"GPS",9},
{425,"CDs",3},{303,"CDs",1},{123,"CDs",5},
{345,"TVs",7},{211,"TVs",3},{415,"TVs",9},{405,"TVs",5},{425,"TVs",1}};
 
int i, retorno; char vendedor [30];
printf ("Vendedores - Ordem de Codigo\n\n");
printf ("CODIGO \tNOME \tSALARIO\n");
for (i=0;i<10;i++){
printf("%d\t",vet1.codigo);
printf("%s\t",vet1.nome);
printf("%2f\n",vet1.salario);
}
 
printf ("Vendedores - Ordem de Produto\n\n");
printf ("PROD \tCODIGO \tQTD\n");
for (i=0;i<19;i++){
printf("%s\t",vet2.produto);
printf("%d\t",vet2.codigo);
printf("%d\n",vet2.qtd);
}
 
getch();system ("cls");
bsort(vet1,10); isort(vet2,19);
 
printf ("Vendedores - Ordenadores por Nome\n");
printf ("CODIGO \tNOME \tSALARIO\n");
for (i=0;i<10;i++){
printf("%d\t",vet1.codigo);
printf("%s\t",vet1.nome);
printf("%2f\n",vet1.salario);
}
 
printf ("Vendas - Odenados por Codigo \n");
printf ("\nPROD \tCODIGO \tQTD\n");
for (i=0;i<19;i++){
printf("%s\t",vet2.produto);
printf("%d\t",vet2.codigo);
printf("%d\n",vet2.qtd);
}
 
getch();system ("cls");
printf ("Vendedor a ser localizado:"); gets (vendedor);
retorno = pesqbin(vet1, vendedor);
if (retorno!=-1) mostra (vet2,retorno);
else printf("Nao esta cadastrado");
getch (); 
return 0;
}
Link para o comentário
Compartilhar em outros sites

int pesqbin(tp_tab1 v[10], char busca) 

Esta é a declaração de seu método pesbin.

char vendedor [30];

Esse da sua variável vendedor.

retorno = pesqbin(vet1, vendedor);

Neste trecho do código você está tentando passa um char[] que é um vendedor para um parâmetro char que é o busca.

Caso queira receber um char passe apenas o 1° caracter do vendedor. Ex:

retorno = pesqbin(vet1, vendedor[0]);

ou caso queira receber uma string (char[]) como parâmetro modifique a declaração de ser método para:

int pesqbin(tp_tab1 v[10], char* busca) 
Link para o comentário
Compartilhar em outros sites

int pesqbin(tp_tab1 v[10], char busca) 

Esta é a declaração de seu método pesbin.

char vendedor [30];

Esse da sua variável vendedor.

retorno = pesqbin(vet1, vendedor);

Neste trecho do código você está tentando passa um char[] que é um vendedor para um parâmetro char que é o busca.

Caso queira receber um char passe apenas o 1° caracter do vendedor. Ex:

retorno = pesqbin(vet1, vendedor[0]);

ou caso queira receber uma string (char[]) como parâmetro modifique a declaração de ser método para:

int pesqbin(tp_tab1 v[10], char* busca) 

 

ok ja nao apresentou mais o erro, porém para que eu possa ver os valores digitados, necessito criar um outra funcao com o nome MOTRA e esta funcao irá mostrar as vendas do vendedor buscado, mais nao sei como desenvolver essa funcao, alguma ideia para desenvolver essa funcao?

Grato

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...