2
#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 也可以

4

2 回答 2

2

this line:

cout <<"\n" <<num-3;

does not change the value of num. It just outputs the value of num - 3. To actually change the value you need another line, such as:

num -= 3;
于 2013-03-06T05:30:30.843 回答
1

即使您按照建议执行并在循环的每次迭代中减去 3(或其他),它也可能不会有很多好处。问题相当简单:您更新变量的速度可能比打印输出快得多,因此您可能很容易看到十几个或更多值几乎同时出现。

为了解决这个问题,您通常希望在迭代之间暂停一小段时间,以便在打印下一个值之前(可能)会看到一个值。基于system("pause");,我猜你正在运行 Windows,在这种情况下,类似这样的代码可能更符合你的喜好:

#include <cstdlib>
#include <iostream>
#include <windows.h>

using namespace std;

int main(int argc, char *argv[])
{
    int num = 33;
    do
    {
        cout <<"    \r" << (num-=3);
        Sleep(100);
    }     
    while (num >=3);     
    return EXIT_SUCCESS;  
}
于 2013-03-06T05:59:26.347 回答