Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Gustavo Rossy

Exercício: Programa de reserva de poltronas em linguagem C

Recommended Posts

Olá pessoal, estou cursando programação de computadores na faculdade e meu professor nos passou um exercicio que diz o seguinte: "Escreva um programa para uma empresa de transportes aéreos que permita controlar a reserva de poltronas de uma aeronave." O exercício completo está em anexo. Meu professor disse que se quiser fazer apenas com um vetor[20] também pode.

Comecei a criar uma função para cada opção do menu, mas minha dificuldade aparece quando eu tento criar um vetor que inicialmente printa o numero de cada poltrona e se caso ele for selecionado apareça um X no lugar dele. Aqui está o código que comecei a criar: 

 

#include <stdio.h>
#include <stdlib.h>
char p[20]={49,50,51,52,53,54,55,56,57,'A','B','C','D','E','F','G','H','I','J','K','L'};

void mostrar_poltronas(){
    printf("[%c] [%c] [%c] [%c] [%c] [%c] [%c] [%c] [%c] [%c]",p[0],p[1],p[2],p[3],p[4],p[5],p[6],p[7],p[8],p[9]);
    printf("\n\n");
    printf("[%c] [%c] [%c] [%c] [%c] [%c] [%c] [%c] [%c] [%c]",p[10],p[11],p[12],p[13],p[14],p[15],p[16],p[17],p[18],p[19]);
}

void reservar_poltrona(){
    int i;
    do{
        mostrar_poltronas();
        printf("\nDigite a poltrona que deseja reservar (digite 0 para sair): ");
        scanf("%i", &i);
        p[i-1]=88;
        system("cls");
    }while (i!=0);
}

int main()
{
    //TESTE DAS FUNÇÕES
    int menu;
    printf("\nTESTE\nMostrar poltronas: 1\nReservar poltronas: 2\nOpcao: ");
    scanf("%i", &menu);
    if (menu==1) mostrar_poltronas();
    else if (menu==2) reservar_poltrona();
    return 0;
}

 

Comecei a criar esse vetor char que armazena as poltronas, e consegui fazer com que ele mostrasse as 9 primeiras poltronas com seus números certos, utilizando a tabela ASCII. Mas a partir do 9 não consegui mais! (Onde está representado pelas letras A - L). Alguém pode me dar alguma ajuda/dica de como resolver isso? Desde já, agradeço muito!

Exercicio 001.jpg

Editado por Gustavo Rossy

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente simplificar, você pode usar uma vetor de chars de 20 posições, e inicializá-lo com valor 0 em todas as posições, e apenas atribuir o valor do caractere 'X' a respectiva posição quando ela estiver ocupada.

 

Assim você imprime o caractere se ele estiver armazenado no vetor, do contrário imprime o número da posição do vetor (+ 1 já que as posições no vetor começam em 0, mas as poltronas começam em 1).

 

Veja:

 

#include <stdio.h>

int main(){
  char vetor[20] = {0};
  int i;
  
  vetor[0] = 'X';  //Poltrona 1
  vetor[10] = 'X'; //Poltrona 11
  vetor[11] = 'X'; //Poltrona 12
  vetor[17] = 'X'; //Poltrona 18
  
  for(i=0; i<20; i+=2){
    if(vetor[i] != 0)
      printf("[ %c] ", vetor[i]);
    else
      printf("[%2d] ", i+1);
  }
  printf("\n");
  
  for(i=1; i<20; i+=2){
    if(vetor[i] != 0)
      printf("[ %c] ", vetor[i]);
    else
      printf("[%2d] ", i+1);
  }
  printf("\n");
  
  return 0;
}

 

Editado por isrnick
  • Curtir 1

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






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

×