Quero converter números inteiros para dobrar no seguinte trecho de código:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int a , b;
double c;
cout<<"Enter two integers: ";
cin>>a>>b;
try
{
if (b == 0)
throw 0;
}
catch (int a)
{
cout<<"You made a division by zero?"<<endl<<a;
}
c = static_cast<double>(a/b);
cout<<"The division is: "<<fixed<<setprecision(2)<<c;
}
Como alterar o código para gerar o valor duplo?
Respostas:
0 para resposta № 1Como mencionado, você deve converter não o resultado da divisão, mas as próprias variáveis, para obter o dobro do valor. Todas as três opções funcionam.
int a, b;
double c;
std::cout << "Enter two integers: ";
std::cin >> a >> b;
try
{
if (b == 0)
throw 0;
}
catch (int a)
{
std::cout << "You made a division by zero?" << std::endl << a;
}
c = static_cast<double>(a) / b;
c = a / static_cast<double>(b);
c = static_cast<double>(a) / static_cast<double>(b);
std::cout << "The division is: " << std::fixed << std::setprecision(2) << c;
std::cin >> a >> b;
0 para resposta № 2
Você está lançando o resultado da divisão; em vez disso, deve lançar os operandos.
Não use uma exceção para capturar uma condição que você já captura usando um simples if
. Basta usar o if
e use um else
para pular a divisão se o segundo operando for zero.
int a , b;
double c;
cout<<"Enter two integers: ";
cin>>a>>b;
if (b == 0) {
cout<<"You made a division by zero?"<<endl;
} else {
c = static_cast<double>(a) / static_cast<double>(b);
cout<<"The division is: "<<fixed<<setprecision(2)<<c;
}