Ir ao conteúdo
  • Cadastre-se
Anderson da Campo

Algoritmo de estacionamento simples

Posts recomendados

Olá, só peço uma ajudinha aqui, meu algoritmo está caindo em um laço de repetição aqui:

                 else{
                 printf("\n Digite o numero da vaga que esta saindo: ");
                 scanf("%d", &NumBox);
                 Vaga[NumBox] = 'L';
                 printf("\n Volte sempre!\n");

 

alguem poderia me dar uma solução? agradeço desde já!

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

int main(){

    char EntSai;
    char Vaga[9];
    int NumBox;

    printf("\n Escolha uma opcao!");
    printf("\n Para entrada digite: E, Para saida digite :S, Para sair digite :B! ");
    scanf("%c", &EntSai);
        if(EntSai == 'B'){
            exit(0);
        }else{
         while( EntSai != 0/*'S' | EntSai == 'E'*/){

             if (EntSai == 'S'){
                    printf("\n Digite o numero da vaga: ");
                    scanf("%d", &NumBox);
                if(Vaga[NumBox] != 'O'){
                         Vaga[NumBox] = 'O';
                         printf("\n Operacao finalizada com sucesso! \n\n");
                    }else{
                         printf("\n Vaga ocupada!! \n\n");
                    }

                 }else{
                 printf("\n Digite o numero da vaga que esta saindo: ");
                 scanf("%d", &NumBox);
                 Vaga[NumBox] = 'L';
                 printf("\n Volte sempre!\n");
             }

         
            printf("\n Escolha uma opcao!");
            printf("\n Para entrada digite: E, Para saida digite :S, Para sair digite :B! ");
            scanf("%c", &EntSai);
         }
        }
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

Seu problema está no lixo do buffer. É bem fácil de arrumar, basta colocar a seguinte linha no final do loop while:

setbuf(stdin, NULL);

 

Porém, seu código tem alguns trechos que podem causar problemas mais tarde, então, decidi alterar algumas coisas - se você não se importar com isso....


 

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


int main(){


char EntSai;
char Vaga[9];
int NumBox;
       
  	// Coloquei dentro de um loop infinito, pois, só sairá dele se for entrado 'B' ou fechado.
    while(1){
  
    	printf("\n Escolha uma opcao!");
    	printf("\n Para entrada digite: E, Para saida digite :S, Para sair digite :B! ");
   
      	// A entrada da variável EntSai, foi colocada dentro do loop para evitar código desnecessário.
    	scanf("%c", &EntSai);
      
    	// Saindo do programa.
    	if(EntSai == 'B')
        	exit(0);
     		
      	// Trecho de código para a entrada.
        if (EntSai == 'E'){
            printf("\n Digite o numero da vaga: ");
            scanf("%d", &NumBox);
   
            if(Vaga[NumBox] != 'O'){
            	Vaga[NumBox] = 'O';
                printf("\n Operacao finalizada com sucesso! \n\n");
             }else
                printf("\n Vaga ocupada!! \n\n");

        // Trecho de código da saida. 
        }else if (EntSai == 'S'){	// Coloquei uma verificação do EntSai, para evitar execução indevida.
            printf("\n Digite o numero da vaga que esta saindo: ");
            scanf("%d", &NumBox);
            Vaga[NumBox] = 'S';
            printf("\n Volte sempre!\n");
        }
   
      	// A solução do seu problema:
        setbuf(stdin, NULL);
  } 
       
}

Qualquer coisa, é só perguntar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado amigo, funcionou perfeitamente! estou aprendendo ai sabe como é... mas estou agradecido.  

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola essa é a minha primeira vez aqui e queria uma super ajuda

gostaria de um algoritmo parecido com o de estacionamento

 

adicionado 4 minutos depois

minha esposa cuida de um bebê e ele vem de vez em quando e ela cobra R$ 2,50 por hora e as vezes ele fica meia hora ou uma hora e e dez é parecido com o de estacionamento já tentei copiar os que tem na net e modificar mas não conseguir 

eu estava tentando no visualg podem me ajudar por favor 

eu não sem nada de algoritmo mas sou curioso para aprender

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Junte-se à conversa

Você pode postar agora e cadastrar-se depois. Se você tem uma conta, faça o login para postar.

Visitante
Responder

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

  Só é possível ter até 75 emoticons.

×   O link foi automaticamente convertido para mostrar o conteúdo.   Clique aqui para mostrá-lo como link comum

×   Seu texto anterior foi restaurado.   Limpar o editor

×   You cannot paste images directly. Upload or insert images from URL.






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!