Médio C++

Usando auto e const

Enunciado

Declare uma constante const auto chamada taxa com valor 0.05 e uma variável auto chamada montante com valor 1000.0. Calcule o valor final aplicando a taxa (montante * (1 + taxa)) e imprima o resultado com duas casas decimais usando std::fixed e std::setprecision(2). Inclua <iomanip>.

Requisitos

  • Usar const auto para taxa.
  • Usar auto para montante.
  • Calcular montante * (1 + taxa) e imprimir com duas casas decimais.

Código inicial

#include <iostream>
#include <iomanip>

int main() {
    // Declare taxa e montante

    // Calcule o valor final

    // Imprima com duas casas decimais
    return 0;
}

Saída esperada

Valor final: 1050.00
Ver dica

Use std::fixed e std::setprecision(2) antes de imprimir.

Mostrar solução
#include <iostream>
#include <iomanip>

int main() {
    const auto taxa = 0.05;      // constante deduzida como double
    auto montante = 1000.0;      // double

    auto valor_final = montante * (1 + taxa);  // double

    std::cout << std::fixed << std::setprecision(2);
    std::cout << "Valor final: " << valor_final << "\n";
    return 0;
}

Passo a passo

  1. Incluímos <iomanip> para usar std::setprecision.
  2. Declaramos const auto taxa = 0.05; — o tipo é deduzido como double e não pode ser alterado.
  3. Declaramos auto montante = 1000.0; — também double.
  4. Calculamos valor_final como montante * (1 + taxa).
  5. Configuramos a saída com std::fixed e std::setprecision(2).
  6. Imprimimos o resultado.

Por que funciona

auto deduz double para ambos os literais, e const garante que taxa não mude. A formatação com std::fixed e std::setprecision(2) exibe exatamente duas casas decimais.

Erros comuns

  • Esquecer #include <iomanip>: std::setprecision não está disponível.
  • Usar std::setprecision(2) sem std::fixed: a precisão se refere a dígitos totais, não casas decimais.
  • Declarar taxa sem const: o código compila, mas perde a intenção de imutabilidade.

Outra forma de resolver

Poderia usar double taxa = 0.05; em vez de const auto, mas const auto é mais moderno e seguro.

Saída esperada

Valor final: 1050.00