我应该编写一个程序,以用户输入的天数显示收入以美分为单位。每天的收入应该增加一倍。
我还不知道我的算法是否正确但是,我的问题是当我运行代码时,我没有得到计算代码的最后部分的输出。
非常感谢您的帮助,
#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;
}
答案 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++;
....
}