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 autoparataxa. - Usar
autoparamontante. - 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
- Incluímos
<iomanip>para usarstd::setprecision. - Declaramos
const auto taxa = 0.05;— o tipo é deduzido comodoublee não pode ser alterado. - Declaramos
auto montante = 1000.0;— tambémdouble. - Calculamos
valor_finalcomomontante * (1 + taxa). - Configuramos a saída com
std::fixedestd::setprecision(2). - 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::setprecisionnão está disponível. - Usar
std::setprecision(2)semstd::fixed: a precisão se refere a dígitos totais, não casas decimais. - Declarar
taxasemconst: 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