Faça um programa que controle o fluxo de vôos nos aeroportos de um país. Com
(vôos) e
(aeroportos) e:
- Crie e leia um vetor de voos, sendo que cada voo contém um código de aeroporto de origem e um de destino.
- Crie um vetor de aeroportos, sendo que cada aeroporto contém seu código, quantidade de voos que saem e quantidade de voos que chegam.
Nota: Cada aeroporto é identificado por um código inteiro entre 0 e (
). Não aceite aeroportos de código inexistente.
Passo 1
O exercício pede um programa em C que leia V=5 voos e A=5 aeroportos, armazenando para cada voo um código de origem e destino e, para cada aeroporto, o número de voos que saem e chegam.
Passo 2
Vamos usar dois vetores: um
para guardar origem e destino de cada voo, e outro
onde cada linha é (código, saídas, chegadas).
Passo 3
Inicializamos o vetor de aeroportos: para
de 0 até A-1, definimos código = i e zeramos saídas e chegadas.
Passo 4
Para cada voo
de 0 até V-1: lemos o código de origem repetindo a leitura enquanto não estiver em
, e fazemos o mesmo para o destino. Armazenamos no vetor de voos e incrementamos airports[orig][1] (saídas) e airports[dest][2] (chegadas).
Passo 5
Ao final, fazemos um laço de 0 até A-1 e imprimimos para cada aeroporto: código, quantidade de saídas e quantidade de chegadas.
Resposta
#include <stdio.h>
#define V 5
#define A 5
#define A 5
int main() {
int flights[V][2]; // flights[i][0]=origem, flights[i][1]=destino
int airports[A][3]; // airports[i][0]=código, [i][1]=saídas, [i][2]=chegadas
int i, orig, dest;
int flights[V][2]; // flights[i][0]=origem, flights[i][1]=destino
int airports[A][3]; // airports[i][0]=código, [i][1]=saídas, [i][2]=chegadas
int i, orig, dest;
// Passo 1: inicializar aeroportos
for (i = 0; i < A; i++) {
airports[i][0] = i; // código
airports[i][1] = 0; // saídas
airports[i][2] = 0; // chegadas
}
// Passo 2: ler voos e atualizar contadores
for (i = 0; i < V; i++) {
do {
printf("Voo %d - aeroporto de origem (0-%d): ", i, A-1);
scanf("%d", &orig);
} while (orig < 0 || orig >= A);
do {
printf("Voo %d - aeroporto de destino (0-%d): ", i, A-1);
scanf("%d", &dest);
} while (dest < 0 || dest >= A);
flights[i][0] = orig;
flights[i][1] = dest;
airports[orig][1]++; // conta saída
airports[dest][2]++; // conta chegada
}
// Passo 3: exibir fluxo de voos por aeroporto
printf("\nFluxo de voos por aeroporto:\n");
for (i = 0; i < A; i++) {
printf("Aeroporto %d: Saídas = %d, Chegadas = %d\n",
airports[i][0], airports[i][1], airports[i][2]);
}
return 0;
}