【发布时间】:2014-06-29 02:52:42
【问题描述】:
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
double Donor = 0.0;
int totalRaised = 0;
cout << "Enter amount donated by first donor [or -1 to stop]:" << endl;
cin >> Donor;
while (Donor != -1)
{
cout << "Enter amount donated by next donor [or -1 to stop]:" << endl;
cin >> Donor;
totalRaised = totalRaised + Donor;
}
cout << "Total amount of money raised: " << totalRaised << endl;
system("pause");
return 0;
}
这是我的代码,我的目标是让用户输入输入,完成后输入 -1 并显示用户输入的总金额,但是当我运行此代码时出现问题,我没有得到正确的值.有人可以指出我正确的方向并解释如何使程序正确运行。谢谢。
【问题讨论】:
-
您正在使用第一个“cin >> Donor;”读取第一个值但不将其存储在 totalRaised 中,因此在 while 循环中您只需覆盖它。你的第一个价值总是会丢失。如果您只是在第一个“cin >> Donor”之后添加“totalRaised = totalRaised + Donor”行,它会起作用(尽管顺便说一下,将浮点数的相等性评估为 -1 的做法是有充分理由不赞成的)
-
请提供一些示例输入和输出。
-
请去掉
system("pause");。任何查看您的代码的人都可以使用dangerous, inefficient, and marks you as a poor programmer。
标签: c++ optimization while-loop helper do-while