【问题标题】:C++ while loops on my program我的程序上的 C++ while 循环
【发布时间】: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


【解决方案1】:
while (Donor != -1)
    {
        cout << "Enter amount donated by next donor [or -1 to stop]:" << endl;
        totalRaised = totalRaised + Donor;
        cin >> Donor;
    }

看看它是否有效。

您必须添加while loop 之前的第一个input,然后进行下一个输入

【讨论】:

    猜你喜欢
    • 2014-04-01
    • 2022-01-14
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    相关资源
    最近更新 更多