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
$900,00$
Região Nordeste
R
350,00
$650,00$
Região Centro-Oeste
R
350,00
$600,00$
Região Sul
R
300,00
$550,00$
Condição | Ida | Ida e Volta |
Região Norte | R
|
|
Região Nordeste | R
|
|
Região Centro-Oeste | R
|
|
Região Sul | R
|
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:
Conteúdos que vamos usar:
- Leitura de dados com
scanf
- Estruturas de controle
switch
eif
/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", ®iao);
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", ®iao);
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;
}