【问题标题】:Explanation to the output [closed]输出说明[关闭]
【发布时间】:2020-06-26 13:43:57
【问题描述】:

为什么程序输出5次雷击,而不是连续输出1,2,3次雷击?

int main()
{

    int flashes[5] = {1, 2, 3, 4, 5};
    int x;
    for (x = 0; x < 4; x++);
    {
       cout<<flashes[x]<<" Lightning Strike"<<endl;
    }   
    return 0;
}

【问题讨论】:

  • 注意; 后面的for (...),它被解释为一个空循环体。后面的所有内容都不是循环体的一部分。
  • 提高你的警告级别并注意他们,-Wall for gcc 告诉你什么是错误的
  • 一些也能捕捉到这一点的东西是像你应该做的那样在循环中声明x
  • 这个和类似的拼写错误让我相信将括号放在同一行不太容易出错,尽管大多数人使用不同的约定

标签: c++ dev-c++


【解决方案1】:

线

    for (x = 0; x < 4; x++);

是一个“空的受控语句”,你应该写

  for (x = 0; x < 4; x++)

(不带分号)。

【讨论】:

  • 好的,谢谢你,但是当我在雷击语句下面测试了x的值时,x值原来是4,为什么会这样?
  • 那么,试试x &lt;= 4x &lt; 5
  • x &lt; 5c++ 中会更常见
猜你喜欢
  • 1970-01-01
  • 2011-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-07
  • 2013-08-08
  • 2014-06-24
相关资源
最近更新 更多