无法让我的C ++程序显示输出

时间:2015-10-21 03:43:14

标签: c++

我应该编写一个程序,以用户输入的天数显示收入以美分为单位。每天的收入应该增加一倍。

我还不知道我的算法是否正确但是,我的问题是当我运行代码时,我没有得到计算代码的最后部分的输出。

非常感谢您的帮助,

#include <iostream>
#include <iomanip>

using std::cout;
using std::cin;
using std::fixed;
using std::setprecision;
using std::endl;

int main()
{
    int days = 0;
    double cents = 0.00;

    cout << "Enter the number of days you want income to be calculated for ";
    cin >> days;

    while((days < 1)||(days > 30))
    {
        cout << "\nInvalid entry try a number from 1 to 30 ";
        cin >> days;
    }

    while(days!=days)
    {
        cents = (pow(0.01, 2) + cents);
        cout << "\nYour income for " << days << " days is " << fixed << setprecision(2)
            << cents << " cents " << endl;
        days++;
    }

    system("PAUSE");
    return 0;
}

3 个答案:

答案 0 :(得分:1)

我希望这是一个错字,或只是你的误解,但以下条件:

while(days!=days)

永远不会是真的。因此,以下大括号内的代码永远不会被执行。 days始终等于days

答案 1 :(得分:1)

Scanner input = new Scanner(myReader);
int arraySize = 0;
while(input.hasNextLine()){
    arraySize++;
    input.nextLine();
}
input.close(); // <-- close it.
myReader = new FileReader(myReaderRef); // Create a new FileReader
input = new Scanner(myReader); // <-- create another scanner instance

除了浮点while(days!=days) (被认为等于什么都没有,包括它自己)之外,永远不会这种情况是真的。

你的循环会更好地写成(假设你的NaN计算是正确的,我没有检查过):

cents

答案 2 :(得分:0)

大家回答说,你写了一个错字 (即.. while(days!= days)

显示的正确方法是引入一个可用作迭代器的新变量。

int day = 0;
while(day != days)
{
    day++;
    ....
}