我正在为我的编程类(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/