c++ - 代码未添加最后一个默认值

标签 c++

我正在为我的编程类(class)介绍编写一个应用程序,目标是 设置一个简单的程序,提示用户使用键盘输入一系列介于 50 和 100(含)之间的正整数。您的提示应该告诉用户输入负数以停止输入过程。

当用户输入数字时,您应该跟踪他们输入的有效输入数(在允许范围内的输入数),并将这些数字输入相加。您不需要存储超过单个输入的数字、计数和您正在计算的当前总数。

一旦用户完成数据输入,产生类似这样的输出:

A total of 5 values were entered.
The sum of those numbers is 127

编写一个有一个变量的程序,它将检索用户

这是我写的代码

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]) {

int loop = 1;
int value;
int times = 0;

cout << "Enter a negavtive number to quit" << endl;
cout << "\nPlease Enter Any Number Between 50 - 100" << endl;

while (loop == 1) {      
cin >> value;
times++;
value += value;
  if(value < 0) {
    cout << "You entered " << times - 1 << " numbers" << endl;
    cout << "Total: " << value << endl;
    system("PUASE");
    return EXIT_SUCCESS;
    }// end if statement
} //end while loop

system("PAUSE");
return EXIT_SUCCESS;
}

这是输出 http://www.flickr.com/photos/62751645@N08/6286454476/

我认为这可能与我使用 int 值来执行两个不同的任务有关。 我该如何解决这个问题?

修订

感谢大家的“修复” 我添加了一个新变量,它就像一个魅力,但现在数学没有正确添加 http://www.flickr.com/photos/62751645@N08/6286526294/in/photostream

最佳答案

有一些问题,但主要的是:

cin >> value;

这意味着“用用户输入的数字覆盖 value”,当然,如果你这样做,你将永远无法在 value 中存储总和,因为它每次都会被新号码覆盖。

解决方案:使用另一个变量来保持运行总数。

你做的也有问题

times++;
value += value; // which as described above will not "stick"

before 检查 value 是否为负。只有当value 负数时,才应执行这些操作;否则,数据输入应立即停止,负数不应计入总和。

关于c++ - 代码未添加最后一个默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7918552/

相关文章:

c++ - 如何在 C++ 中使用 while 循环读取文件?

java - 降噪程序

c++ - 在 C++ 中隐藏私有(private)方法和成员

c++ - 在CUDA/推力中对分段数据进行成对操作

c++ - 我应该用 'if' 语句统一两个相似的内核,冒着性能损失的风险吗?

c++ - 如何干净利落地结束 Lua 线程?

java - 在模板类中使用 <limits.h>> 中的最大值

c++ - 模板和继承类中的 ostream 重载中的重新定义错误

c++ - 努力编写 C API 的线程安全 C++ 包装器

c++ - 在执行时加载常量,一次还是两次?