由于调试行,函数正在工作
Function working because of debugging line
我正在查找谐波数,只要输入了我用来调试程序的线路,函数就会循环,直到找到正确的谐波数cout线在最后。如果我删除cout的任何部分,程序就会再次失败。我完全不知道国家电视台是如何影响这个节目的。没有它,所有东西都会存储零。
struct fraction
{
long nume, denom;
};
void add (fraction x, fraction y, fraction& result)
{
long Numerator, Denominator, GCD, Higher, Lower;
Numerator = (x.nume * y.denom + x.denom * y.nume);
Denominator = (x.denom * y.denom);
if (Numerator > Denominator)
{
Lower = Denominator;
Higher = Numerator;
}
else if (Numerator < Denominator)
{
Higher = Denominator;
Lower = Numerator;
}
while (Higher % Lower > 0)
{
GCD = Higher % Lower;
Higher = Lower;
Lower = GCD;
}
result.nume = Numerator/GCD;
result.denom = Denominator/GCD;
cout << "d " << result.nume << " " << GCD << " " << Denominator/GCD << " " << result.denom << endl;
}
您没有Higher和Lower的默认值,因此当这两个条件都不成立时,将发生未定义的行为:
if (Numerator > Denominator)
否则如果(分子<分母)
我建议您打开编译器警告,以便报告类似的错误。如果你使用的是GCC/Clang打开"-墙"。
当您使用调试器进行调试时,这应该是一个容易捕获的问题。
相关文章:
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++中的memset函数工作不正常
- 渲染窗口无法跨多个函数工作
- C++:最大数组值函数工作不正常
- 仅一个功能的链接错误.在同一类和CPP文件中具有相似签名的其他函数工作正常
- 如何让我的构造函数和函数工作,以便我的 main() 能够同时显示字符串和 int 数据
- (c++)无法让 void 函数工作,主.cpp内部的几行也有问题
- 编译器生成的默认构造函数工作 - C++
- 我似乎无法让我的最大长度递归函数工作
- 无法让 SHGetKnownFolderPath() 函数工作
- Qt 5.2无法使qWait函数工作
- 模板作为递归函数工作
- 构造函数工作不正常
- 如何让c风格的字符串函数工作
- 我如何让这个构造函数工作
- C函数工作,c++版本不
- 为什么我的衍生自CRTP函数工作
- 不明白为什么这个C++递归函数工作背后的逻辑
- 对不存在的对象调用成员函数工作正常,c++
- 如何使 cv::setMouseCallback 函数工作