Utilizando os conceitos de Funções e Structs, resolva o problema abaixo de acordo com os itens solicitados:
Faça um programa que efetue reserva de passagens aéreas de uma certa companhia. O programa deverá ler informações sobre os vôos (número, origem e destino) juntamente com o número de lugares disponíveis para 12 aviões (um vetor para cada um desses dados). O programa deverá apresentar um menu com as seguintes opções:
- Consultar;
- Efetuar Reserva;
- Sair.
Quando a opção escolhida for Consultar deverá ser disponibilizado mais um menu com as seguintes opções:
- Por número de vôo;
- Por origem;
- Por destino.
Quando a opção escolhida for Efetuar Reserva deverá ser perguntado o número do vôo no qual a pessoa deseja viajar. O programa deverá dar as seguintes respostas:
- Reserva confirmada – caso exista o vôo e lugar disponível, dando baixa nos lugares disponíveis;
- Vôo lotado – caso não exista lugar disponível nesse vôo;
- Vôo inexistente – caso o código do vôo não exista.
A opção sair é a única que permite sair do programa. Sendo assim, após cada operação de consulta ou reserva o programa volta ao menu principal.
OBS.: Pode ser criado uma função para cada item exigido no problema, da mesma forma a struct ou como acharem melhor.
Após implementar o código responda:
1 – Qual a(s) diferença(s) entre variáveis locais e variáveis globais.
2 – Qual(ais) a(s) vantagem(ens) de utilizar funções na programação?
3 – Qual(ais) a(s) dificuldade(s) encontrada(s) na programação? Caso não houver dificuldade deixe a resposta em branco.
4 – Na sua opinião o que são Registros (Structs) e para que servem?
Cole o código implementado no comentário, bem como as respostas do questionário. Good luck!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_VOOS 12
#define MAX_NOME 50
typedef struct {
int numero;
char origem[MAX_NOME];
char destino[MAX_NOME];
int lugares_disponiveis;
} Voo;
void consultarPorNumero(Voo voos[]) {
int numero;
printf(“Digite o número do voo: “);
scanf(“%d”, &numero);
getchar();
}
void consultarPorOrigem(Voo voos[]) {
char origem[MAX_NOME];
printf(“Digite a origem do voo: “);
fgets(origem, MAX_NOME, stdin);
origem[strcspn(origem, “\n”)] = ‘\0’;
}
void consultarPorDestino(Voo voos[]) {
char destino[MAX_NOME];
printf(“Digite o destino do voo: “);
fgets(destino, MAX_NOME, stdin);
destino[strcspn(destino, “\n”)] = ‘\0’;
}
void efetuarReserva(Voo voos[]) {
int numero;
printf(“Digite o número do voo: “);
scanf(“%d”, &numero);
getchar();
}
int main() {
Voo voos[MAX_VOOS];
int opcao;
}
CurtirCurtir
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_VOOS 12
#define MAX_NOME 50
typedef struct {
int numero;
char origem[MAX_NOME];
char destino[MAX_NOME];
int lugares_disponiveis;
} Voo;
void consultarPorNumero(Voo voos[]) {
int numero;
printf(“Digite o número do voo: “);
scanf(“%d”, &numero);
getchar();
}
void consultarPorOrigem(Voo voos[]) {
char origem[MAX_NOME];
printf(“Digite a origem do voo: “);
fgets(origem, MAX_NOME, stdin);
origem[strcspn(origem, “\n”)] = ‘\0’;
}
void consultarPorDestino(Voo voos[]) {
char destino[MAX_NOME];
printf(“Digite o destino do voo: “);
fgets(destino, MAX_NOME, stdin);
destino[strcspn(destino, “\n”)] = ‘\0’;
}
void efetuarReserva(Voo voos[]) {
int numero;
printf(“Digite o número do voo: “);
scanf(“%d”, &numero);
getchar();
}
int main() {
Voo voos[MAX_VOOS];
int opcao;
}
CurtirCurtir
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
int numero;
char origem[50];
char destino[50];
int lugares_disponiveis;
}passagens;
void consultarPorNumero(passagens voos[]) {
int numeroVoo;
printf(“Digite o número do voo: “);
scanf(“%d”, &numeroVoo);
}
void consultarPorOrigem(passagens voos[]) {
char origem[50];
printf(“Digite a origem do voo: “);
scanf(“%s”, origem);
}
void consultarPorDestino(passagens voos[]) {
char destino[50];
printf(“Digite o destino do voo: “);
scanf(“%s”, destino);
}
void efetuarReserva(passagens voos[]) {
int numeroVoo;
printf(“Digite o número do voo desejado: “);
scanf(“%d”, &numeroVoo);
}
int main() {
passagens voos[12];
}
CurtirCurtir