#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int num, num2;
num = 33;
do
{
cout <<"\n" <<num-3;
}
while (num >=3);
system("PAUSE");
return EXIT_SUCCESS;
}
我编写了上面的代码,但是当我运行它时,它输出30并且不会将值耗尽为3。 我怎么能让循环这样做?我知道num--会起作用,但这只会耗尽一个值。我是c ++的新手,我正在努力解决这些问题。
谢谢! :)
//编辑谢谢我现在正在使用num = num - 3,num- = 3也可以
答案 0 :(得分:2)
这一行:
cout <<"\n" <<num-3;
不会更改num的值。它只输出num-3的值。要实际更改值,您需要另一行,例如:
num -= 3;
答案 1 :(得分:1)
即使你按照建议进行操作并在循环的每次迭代中减去3(或其他),它也可能不会有很多好处。问题非常简单:您可能比输出打印速度更快地更新变量,因此您可以很容易地看到十几个或更多的值都出现在基本相同的时间。
为了解决这个问题,您通常希望在迭代之间暂停一段时间,因此在打印下一个值之前(可能)会显示一个值。根据{{1}},我会猜测您正在运行Windows,在这种情况下,类似这样的代码可能会更符合您的喜好:
system("pause");