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

Projeto


jeguera

Pergunta

Bom dia, sou novo na comunidade estou com muitas duvidas em meu programa, a minha duvida é em consistência tipo ao pedir o codigo do cliente o sistema de hospedagem não pode aceitar codigo do cliente igual a zero.

Gostaria de saber o que está acontecendo nesse programa, porque toda vez que coloco zero ele aceita...ficaria muito grato pela ajuda.

//Hospeda

void hos(int vet[])

{

/* */int cli,flag=0,i;

/* */do

/* */{

/* */printf ("\n\t Codigo do Cliente: ");

/* */scanf("%d",&cli);

/* */}

/* */while(cli!=0);

//------------------------------------------------------------------------------

/* */for(i=0;i<que;i++)

/* */{

/* */if (vet==0)

/* */{

/* */vet=cli;

/* */flag=1;

/* */break;

/* */}

/* */}

/* */if (flag==0)

/* */printf ("não tem quartos disponiveis");

/* */else

/* */printf("\n\tCliente %d hospedado no quarto %d\n\n",cli,i+1);

/* */system("pause");

}

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

A sua condição do do...while está ao contrário do que você quer. Ela está fazendo o loop continuar até que cli seja 0 e não o contrário.

/* */while(cli==0);

Isso deve resolver.

O laço continua enquanto a condição de parada é verdadeira. Portanto se você ler um 0, ele deve continuar executando até que ela seja falsa.

Link para o comentário
Compartilhar em outros sites

  • 0

Ola, estou com um outro problema tenho que fazer uma função de pesquisa sequencial, e queria saber o que está dando errado nesse programa.

Nele quero digitar o codigo do cliente e saber em que quarto ele se encontra hospedado....ficaria muito grato pela ajuda.

void consc(int vet[],int nq)

{

int i,cli,flag=0;

do{

printf("\n\t Digite codigo do Cliente: ");

scanf("%d",&cli);

printf("\n\n\t***Digite codigo do cliente maior que zero***\n");

}

while(cli==0) /*&&(cli!=que))*/;

for(i=0;i<que;i++){

if(vet==nq){

flag=1;}

}

if(flag==0)

printf("\n\tCliente %d hospedado no quarto %d\n\n",cli,i+1);

else

printf("\n\t Quarto Desocupado\n\n");

system("pause");

}

Link para o comentário
Compartilhar em outros sites

  • 0

Mas tu está guardando as informações aonde? Apenas na memoria volatil?

Seria melhor (e ate mais facil) você trabalhar com arquivo.

Pois será no arquivo onde ficarão armazenadas as informações dos hospedes.

Mas se tu quer dxar guardado apenas na memoria volátil para o fim de testar, vamos à uma sugestão:

Tu teria primeiro que criar uma struct, depois através de um for pesquisar o codigo do cliente pra que quando achasse ele fosse no struct dele e saber o quarto.

Meio complicado, ne?!

Vo dar um exemplo:

struct cadastro {

int quarto;

int codigocliente;

} cliente[20];

void pesquisa (cliente[], codigo); // recebe um vetor com o codigo de todos os clientes e o codigo do cliente a ser pesquisado

{

int i;

for (i=0; i<20; i++)

{

if (cliente.codigocliente == codigo)

{

if (cliente.quarto == NULL)

{

printf("Este cliente não esta hospedado");

}

else {

printf("Este cliente esta hospedado no quarto %d", cliente.quarto);

}

}

}

}

acho que da certo, testa aí e manda a resposta. =P

Por que fica sem identação, hein?! Aff.

Assim fica dificil de ate eu entender. <_<

Editado por acs_junior
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,5k
×
×
  • Criar Novo...