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

Algoritmo de estacionamento simples

Recommended Posts

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.

  • Curtir 1

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





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

×