Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com função [Ajuda]


vhbsouza

Pergunta

Oi.

Eu estou fazendo um programa que faz consultas dentro de um vetor(array).

Onde o usuário digita o nome ...e se o nome não estiver dentro de nenhuma das variáveis do vetor ... a função deve retornar -1, mas o problema é que a função sempre retorna -1, mesmo quando eu digito um nome que exixte dentro do vetor.

vocês podem me ajudar?

Aqui está o codigo da parte da consulta:

//Consultas

    // Problema na parte da consulta.... a função buscaCidade está sempre retornando -1.
    bus_cid1[21]=' ';

   printf("Leia o nome da Cidade 1:\n");
    while (scanf("%s",bus_cid1) && strcmp(bus_cid1,"fim")!=0)
   {
       fflush(stdin);
       while ((cid1=buscaCidade(bus_cid1))==-1) // essa função deve retornar -1 se não achar a cidade ou
        {
            printf("Leia o nome da Cidade 1:\n");
            scanf("%s",&bus_cid1);
         fflush(stdin);
          }

         printf("Leia o nome da Cidade 2:\n");
           scanf("%s",&bus_cid2);

        while ((cid2=buscaCidade(bus_cid2))==-1) // essa função deve retornar -1 se não achar a cidade ou
        {
            printf("Leia o nome da Cidade 2:\n");
            scanf("%s",&bus_cid2);
         fflush(stdin);
        }

         printf("Leia o nome do tipo do veiculo:\n");
           scanf("%s",&bus_vel);

        while ((vel=buscaCidade(bus_vel))==-1) // essa função deve retornar -1 se não achar a cidade ou
        {
            printf("Leia o nome do tipo do veiculo:\n");
            scanf("%s",&bus_vel);
         fflush(stdin);
        }
Trecho de Código da função:
int buscaCidade(char nome[21])
{
    int x,i;
   x=-1;
   for(i=0;i<4;i++)
   {
       if(nome==cidades[i])
          x=i;
    }
   return (x);

}

valeu!!! Espero a resposta...

Editado por vhbsouza
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0
Onde essa variável é preenchida?

cidades[i]
Veja essa comparação:
nome==cidades[i]
nome seria a referencia do vetor e cidades é o que?
Oi.. Então... cidades é um um vetor de String char cidades[4][21], onde [4] representa a parte do vetor e [21] representa o char ... e ela é preenchida através desse codigo:
for(i=0;i<=3;i++)
    {   //Preciso previnir que nome de duas cidades sejam iguais!!!!
        scanf("%s",cidades[i]);
    }

me ajuda ai!!!

Editado por vhbsouza
Link para o comentário
Compartilhar em outros sites

  • 0

Ow Kandrade!!!

Vlw...

isso agora funcionou...

mais surgiu outro problema... na execução do programa completo...

porque também... existe uma outra função:

int buscaVeiculo(char nome[21])
{
    int x;
   x=-1;

    if(nome=="carro")
        x=0;
   if(nome=="onibus")
        x=1;
   if(nome=="caminhao")
        x=2;

   return (x);

}
e ela é chamada neste trecho:
printf("Leia o nome do tipo do veiculo:\n");
           scanf("%s",&bus_vel);

        while ((vel=buscaCidade(bus_vel))==-1) // essa função deve retornar -1 se não achar a cidade ou
        {
            printf("Leia o nome do tipo do veiculo:\n");
            scanf("%s",&bus_vel);
         fflush(stdin);
        }

E o problema é que esta função está sempre retornando o valor -1, você sab o que está acontecendo?

Link para o comentário
Compartilhar em outros sites

  • 0

kandrade...

o codigo é esse...

Irei colocar o trecho de código relacionada a esta parte:

// Problema na parte da consulta.... a função buscaVeículo está sempre retornando -1.
bus_cid1[21]=' ';

printf("Leia o nome da Cidade 1:\n");
while (scanf("%s",bus_cid1) && strcmp(bus_cid1,"fim")!=0)
{
      fflush(stdin);
       while ((cid1=buscaCidade(bus_cid1))==-1) // essa função deve retornar -1 se não achar a cidade ou
        {
            printf("Leia o nome da Cidade 1:\n");
            scanf("%s",&bus_cid1);
            fflush(stdin);
      }

    printf("Leia o nome da Cidade 2:\n");
      scanf("%s",&bus_cid2);

        while ((cid2=buscaCidade(bus_cid2))==-1) // essa função deve retornar -1 se não achar a cidade ou
        {
               printf("Leia o nome da Cidade 2:\n");
            scanf("%s",&bus_cid2);
            fflush(stdin);
         }

     printf("Leia o nome do tipo do veiculo:\n");
       scanf("%s",&bus_vel);

         while ((vel=buscaCidade(bus_vel))==-1) // essa função deve retornar -1 se não achar a cidade ou
         {
            printf("Leia o nome do tipo do veiculo:\n");
            scanf("%s",&bus_vel);
                fflush(stdin);
         }
         system('cls');

      //Consulta- Escrita do resultado

      printf("O tempo em minutos e de: %d\nDigite \"fim\" para sair ou o nome de uma das cidades para uma nova consulta.\n",mat[cid1][cid2][vel]);
   }
e aqui está o Código da minha função buscaVeiculo:
int buscaVeiculo(char nome[21])
{
    int x;
   x=-1;

    if(strcmp(nome,"carro")==0)
        x=0;
   if(strcmp(nome,"onibus")==0)
        x=1;
   if(strcmp(nome,"caminhao")==0)
        x=2;

   return (x);

}

todas as variáveis da int main() estão corretamente declaradas.

espero que possam me ajudar....

xD :D

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...