如何正确设置程序变量

时间:2014-12-09 21:49:08

标签: c++

我试图编写将返回给定数字的相等分频器的代码。我不知道我错在哪里。有什么帮助吗?

代码:

#include <iostream>
#include <stdlib.h>

using namespace std; // So the program can see cout and endl


int main()
{
    int Numerator;
    cout<<"Enter Numerator: ";
    cin>>Numerator;

    int Denominator = 1;
    while (Denominator < Numerator) {
        int divresult;
        int check;
        divresult = (Numerator / Denominator);
        check = divresult * Denominator;
        if(check = Numerator){
                cout << divresult <<endl;
        }
        Denominator++;

    }

    return 0;
}

期望的输出:

9
3
1

3 个答案:

答案 0 :(得分:2)

该行:

if(check = Numerator){

应该是

if(check == Numerator){

您需要==来检查相等性。 =用于分配。你的编译器应该给你一个警告。

此外,如果您想要输出1,还需要更改行:

while (Denominator < Numerator) {

while (Denominator <= Numerator) {

答案 1 :(得分:1)

这一行:

if(check = Numerator){

错了。使用==检查是否相等,而=导致将Numerator的值分配给check,然后if表达式为真新的价值是真的。你的编译器应该给你一个关于这个错误的警告;如果没有,请打开警告。如果确实如此,请多注意警告。

答案 2 :(得分:1)

在C ++中,比较运算符为==

if ( check == Numerator ) { ...