Criar um programa em C que leia o destino do passageiro, se a viagem inclui retorno (ida e volta) e informar o preço da passagem conforme a tabela a seguir:
Condição Ida Ida e Volta
Região Norte R \ 500,00 & R$900,00$
Região Nordeste R \ 350,00 & R$650,00$
Região Centro-Oeste R \ 350,00 & R$600,00$
Região Sul R \ 300,00 & R$550,00$

Passo 1

O enunciado pede para escrever um programa em C que leia o destino do passageiro (entre quatro regiões) e se a passagem é só de ida ou de ida e volta, e em seguida informe o preço conforme a tabela dada.
Conteúdos que vamos usar:
  • Leitura de dados com scanf
  • Estruturas de controle switch e if/else
  • Saída formatada com printf

Passo 2

Declaramos variáveis para armazenar o código da região (inteiro), o tipo de viagem (caractere) e o preço final (inteiro). Em seguida usamos scanf para ler esses valores do usuário:
int regiao, preco;
char tipo;
printf("Digite o código da região (1-Norte, 2-Nordeste, 3-Centro-Oeste, 4-Sul): ");
scanf("%d", &regiao);
printf("Digite I para ida ou V para ida e volta: ");
scanf(" %c", &tipo);

Passo 3

Usamos um switch para cada região e, dentro de cada caso, um if para diferenciar ida ('I' ou 'i') de ida e volta ('V' ou 'v'). Atribuímos à variável preco o valor correto da tabela:
switch (regiao) {
 case 1: // Região Norte
 if (tipo\(==\)'I' || tipo\(==\)'i') preco \(=500\);
 else if (tipo\(==\)'V' || tipo\(==\)'v') preco \(=900\);
 else preco = -1;
 break;
 case 2: // Região Nordeste
 if (tipo\(==\)'I' || tipo\(==\)'i') preco \(=350\);
 else if (tipo\(==\)'V' || tipo\(==\)'v') preco \(=650\);
 else preco = -1;
 break;
 case 3: // Região Centro-Oeste
 if (tipo\(==\)'I' || tipo\(==\)'i') preco \(=350\);
 else if (tipo\(==\)'V' || tipo\(==\)'v') preco \(=600\);
 else preco = -1;
 break;
 case 4: // Região Sul
 if (tipo\(==\)'I' || tipo\(==\)'i') preco \(=300\);
 else if (tipo\(==\)'V' || tipo\(==\)'v') preco \(=550\);
 else preco = -1;
 break;
 default:
 preco = -1; // código de região inválido
}

Passo 4

Verificamos se preco ficou negativo, indicando erro na região ou no tipo de viagem. Se for válido, mostramos o valor formatado em reais; caso contrário, exibimos mensagem de erro:
if (preco >\(=0\)) {
 printf("O preço da passagem é R$ %d,00
", preco);
} else {
 printf("Região ou tipo de viagem inválido.
");
}

Resposta

#include <stdio.h>

int main() {
 int regiao, preco;
 char tipo;

 printf("Digite o código da região (1-Norte, 2-Nordeste, 3-Centro-Oeste, 4-Sul): ");
 scanf("%d", &regiao);
 printf("Digite I para ida ou V para ida e volta: ");
 scanf(" %c", &tipo);

 switch (regiao) {
 case 1: // Região Norte
 if (tipo\(==\)'I' || tipo\(==\)'i') preco \(=500\);
 else if (tipo\(==\)'V' || tipo\(==\)'v') preco \(=900\);
 else preco = -1;
 break;
 case 2: // Região Nordeste
 if (tipo\(==\)'I' || tipo\(==\)'i') preco \(=350\);
 else if (tipo\(==\)'V' || tipo\(==\)'v') preco \(=650\);
 else preco = -1;
 break;
 case 3: // Região Centro-Oeste
 if (tipo\(==\)'I' || tipo\(==\)'i') preco \(=350\);
 else if (tipo\(==\)'V' || tipo\(==\)'v') preco \(=600\);
 else preco = -1;
 break;
 case 4: // Região Sul
 if (tipo\(==\)'I' || tipo\(==\)'i') preco \(=300\);
 else if (tipo\(==\)'V' || tipo\(==\)'v') preco \(=550\);
 else preco = -1;
 break;
 default:
 preco = -1; // código de região inválido
 }

 if (preco >\(=0\)) {
 printf("O preço da passagem é R$ %d,00
", preco);
 } else {
 printf("Região ou tipo de viagem inválido.
");
 }

 return 0;
}

Exercícios relacionados