找到最大除数的程序返回0

时间:2015-09-25 14:54:02

标签: c++

我刚刚想到我会尝试学习如何编码。我是基础知识,并在网上找到了一些练习,但我已经坐了大约40分钟,无法弄明白。所以尽管这对你们大多数人来说似乎是基本的,但我会寻求一些帮助:)

所以这是任务:

指定的整数在[m,n]范围内。编写一个程序来查找具有最大除数的数字。

输入/输出:

Initial data |   Result

10 40        |        36

代码:

#include <cstdlib>
#include <iostream>
#include <fstream>

using namespace std;

int main(int argc, char *argv[])
{
    int m, n, s, sd = 0, ats;
    double a = 0;
    ifstream fd("Duomenys.txt");
    fd >> m >> n;
    for(int i = m; i<=n; i++){
        s = 0;
        for(int j = 1; j<=i; ++j){
            a = 0;
            a = i % j;
            if(a = 0) s= s + 1; 
        }
    if(s > sd) {
        i = ats;
        s = sd;

        }
    }
    cout << ats;
        system("PAUSE");
    return EXIT_SUCCESS;
}

现在我只使用cout << ats来测试它,但是如果我运行它会得到一个0作为答案。

1 个答案:

答案 0 :(得分:3)

如果要测试a是否等于0,则必须使用等于运算符,即==

使用if (a = 0),您实际上将0分配给a,然后测试此操作的结果,该操作的结果始终为0.这就是为什么if的说明,这里{{永远不会被执行。

代码中的其他问题:

  • 您使用变量s = s + 1;但从未对其进行初始化,因此其值未确定
  • 我没有看到任何理由atsa而不是double

我建议您打开所有编译器警告并从a good book or tutorial about C++

开始