【问题标题】:Dividing a number in loop until it satisfies a condition = 0在循环中除以一个数字,直到它满足条件 = 0
【发布时间】:2017-06-01 20:35:19
【问题描述】:

我必须在程序中输入一个值并不断将其除以 4,直到它到达数字 0。但是当我运行它时,它并没有在 0 处停止,它会一直重复 0。代码有什么问题?

#include <iostream>

using namespace std;

int main(){
    double input;
    cout << "Enter an Integer: ";
    cin >> input;
    cout << input << "/ 4 ";
    do
    {
        input = input / 4;
        if (input >= 0)
            cout <<" = "<< input << endl;
        cout <<input << " /4";
    }
    while ((input >= 0) || (input != 0));
    return 0;
}

【问题讨论】:

  • 该示例中有一些令人印象深刻的误解。 double input; cout &lt;&lt; "Enter an Integer: ";
  • 我们不会忽视您的错误。相反,我们将帮助您纠正它们。尽管我们知道您可能仍需要指导,但您仍有责任遵守网站规则。请先修正缩进。
  • while ((input &gt;= 0) || (input != 0)); 是您应该尝试理解的。这种情况在哪里失败,什么时候是真的。
  • 你在哪里除以 4?

标签: c++ divide


【解决方案1】:

这是我的三分钱。:)

#include <iostream>

int main() 
{
    const long long int DIVISOR = 4;

    while ( true )
    {
        std::cout << "Enter an Integer (0 - Exit): ";

        long long int n;

        if ( not ( std::cin >> n ) or ( n == 0 ) ) break;

        std::cout << std::endl;

        do
        {
            std::cout << n << " / " << DIVISOR;
            n /= DIVISOR;
            std::cout << " = " << n << std::endl;

        } while ( n );

        std::cout << std::endl;
    }

    return 0;
}

程序输出可能看起来像

Enter an Integer (0 - Exit): 1000

1000 / 4 = 250
250 / 4 = 62
62 / 4 = 15
15 / 4 = 3
3 / 4 = 0

Enter an Integer (0 - Exit): 0

【讨论】:

    猜你喜欢
    • 2016-05-02
    • 2021-12-24
    • 2019-09-19
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-12
    相关资源
    最近更新 更多