я работаю на классе фракции в C++ и у меня возникли проблемы с этим блоком кода:программы C++ вылетает без ошибок
ostream& operator << (ostream &out , Fraction &cfraction)
{
int gcd = normalize (cfraction) ;
cfraction.numerator /= gcd ;
cfraction.denominator /= gcd ;
try
{
if (cfraction.denominator < 0)
{
cfraction.numerator *= -1 ;
cfraction.denominator *= -1 ;
}
//needs editing
if (cfraction.denominator == 0)
throw "Not defined" ;
if (cfraction.numerator == 0 && cfraction.denominator != 0)
out << cfraction.numerator ;
if (cfraction.denominator == 1)
{
out << cfraction.numerator ;
}
else
out << cfraction.numerator << "/" << cfraction.denominator ;
}
catch (const char* error)
{
cerr << "ERROR: " << error << " " ;
}
return out ;
}
Моего сбоем программой, если cfraction.numerator
или cfraction.denominator
равен 0.
Может кто-нибудь помочь мне, сообщив, в чем проблема с моим кодом?
Обновление - Решено, должно было проверить, было ли gcd равным нулю. Спасибо всем, кто ответил.
Разделить на ноль! – CinCout
На какой линии он падает? – Sean
Спросите своего учителя математики или калькулятора: что-то деленное на ноль. – NathanOliver