Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 ; } ostream&operator_C++ - Fatal编程技术网

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 ; } ostream&operator

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 ; } ostream&operator,c++,C++,如果除以零,程序将崩溃。这是它能做的最好的了,因为除以零不能产生有意义的结果。您唯一能做的就是在除法之前检查零,例如: int a = 1; int b = 0; assert( b != 0 ); int c = a/b; 通常,您会希望用一些更合理的错误处理来替换assert。在一些罕见的情况下,通过在除法之前添加一些ε来避免被零除可能是有意义的。例如 double d = 1.0; double e = 0.0; double eps = 1.0e-10; double f = d/(e

如果除以零,程序将崩溃。这是它能做的最好的了,因为除以零不能产生有意义的结果。您唯一能做的就是在除法之前检查零,例如:

int a = 1;
int b = 0;
assert( b != 0 );
int c = a/b;
通常,您会希望用一些更合理的错误处理来替换
assert
。在一些罕见的情况下,通过在除法之前添加一些ε来避免被零除可能是有意义的。例如

double d = 1.0;
double e = 0.0;
double eps = 1.0e-10;
double f = d/(e + eps);

然而,这可能是危险的,因为它隐藏了代码中的一些问题(被零除几乎总是一个问题)。

它在哪一行崩溃?问问你的数学老师或计算器:什么是被零除的东西。旁注:输出某些东西通常不会修改它,参数应该是常量引用(如果是参考资料)。如果任何数字为零,则未定义最大公约数。您需要将其作为特例处理。如果分母为零,则未定义分数,因此在使用此运算符之前,您早就该处理过这种情况。是的,我正在除以零。问题在于我的规格化函数。谢谢帮助。