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

Dificuldade programa C


Lucas Domingues

Pergunta

Galera,

Estou desenvolvendo um programa baseado em struct, o programa solicita dados no tipo de variável (char). Através do for eu faço um looping a minha escolha em quantas vezes eu quero pedir a quantia de informações, após feito isto, é feito a solicitação de uma pesquisa, armazeno a solicitação em outra variável char e ao efetuar a comparação através da função strcmp ou stricmp resulta sempre que não foi localizado.

Necessito de uma ajuda pois já efetuei vários testes e não funciona, creio que seja importante neste caso o código-fonte, então encaminho ele. Peço que me ajudem o mais rápido possível pois tenho que ter o programa pronto até amanhã umas 15hs.

Abraço galera, desde já agradeço.

Lucas

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>

    struct aeroporto {
           char nome[20];
           char sobrenome[20];
           char cidade_origem[20];
           char cidade_destino[20];
           char conexao[20];
           char t_classe[30];
           };
           
    int main()
        {
              struct aeroporto dados_passageiro[20];
              int i, a;
              char sobrenome_c[20];
              
              
              for(i=0;i<3;i++)
                              {     
                                   fflush(stdin);         
                                   //printf("Entre com o Nome do Passageiro %d: ", i);
                                   //gets(dados_passageiro[i].nome);
                                   printf("Entre com o Sobrenome do Passageiro %d: ", i);
                                   gets(dados_passageiro[i].sobrenome);
                                   //printf("Entre com a Cidade de origem do passageiro %d: ", i);
                                   //gets(dados_passageiro[i].cidade_origem);
                                   //printf("Entre com a Cidade de destino do passageiro %d: ", i);
                                   //gets(dados_passageiro[i].cidade_destino);
                                   //printf("Entre com a conexao do voo. Se não tiver digite (NENHUM): ");
                                   //gets(dados_passageiro[i].conexao);
                                   //printf("Classe Economica ou Executiva: ");
                                   //gets(dados_passageiro[i].t_classe);
                              }
              printf("Digite o sobrenome do passageiro a ser pesquisado: ");
              gets(sobrenome_c);
              if (strcmp(sobrenome_c,dados_passageiro[i].sobrenome) == 0)
                   {
                               printf("Passageiro encontrado!!\n\n"); 
                   }   
              else
                  {
                                printf("Passageiro não encontrado!!\n\n");
                   }   
    getchar();
        }

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

"Faltam 50 minutos, ainda dá tempo! O erro é simples: olhe para o código de novo. Onde o for começa? Onde o for termina? Na comparação, você está realizando ela somente uma vez, e em um elemento que "nem existe". (dados_passageiro[3], você só preenche até o 2)

Exemplo de código que funcionaria:

int encontrou = 0;

printf("Sobrenome: ");
gets(sobrenome);

for(int i = 0; i < 3; ++i) {
  if(strcmp(sobrenome, dados_passageiro[i].sobrenome) == 0) {
    encontrou = 1;
    break;
  }
}

if(encontrou == 1) {
  printf("Passageiro encontrado!\n");
} else {
  printf("Passageiro não encontrado.\n");
}

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

Ae velho valeu mesmo

funcionou. abraço!

"Faltam 50 minutos, ainda dá tempo! O erro é simples: olhe para o código de novo. Onde o for começa? Onde o for termina? Na comparação, você está realizando ela somente uma vez, e em um elemento que "nem existe". (dados_passageiro[3], você só preenche até o 2)

Exemplo de código que funcionaria:

int encontrou = 0;

printf("Sobrenome: ");
gets(sobrenome);

for(int i = 0; i < 3; ++i) {
  if(strcmp(sobrenome, dados_passageiro[i].sobrenome) == 0) {
    encontrou = 1;
    break;
  }
}

if(encontrou == 1) {
  printf("Passageiro encontrado!\n");
} else {
  printf("Passageiro não encontrado.\n");
}

Abraços!

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...