Faça um programa que controle o fluxo de vôos nos aeroportos de um país. Com V=5 (vôos) e A=5 (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 ( A-1 ). 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 flights[V][2] para guardar origem e destino de cada voo, e outro airports[A][3] onde cada linha é (código, saídas, chegadas).

Passo 3

Inicializamos o vetor de aeroportos: para i de 0 até A-1, definimos código = i e zeramos saídas e chegadas.

Passo 4

Para cada voo i de 0 até V-1: lemos o código de origem repetindo a leitura enquanto não estiver em [0, A-1], 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
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;
// 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;
}

Exercícios relacionados