C ++金字塔 - 使用X和0

时间:2014-10-13 08:40:56

标签: c++ visual-studio-2012 for-loop

需要一些帮助来进行课堂练习:

我的任务是编写C ++代码以获得金字塔,在运行时,将在特定位置创建一个X和0的集合金字塔。截至目前,我有一个只有X的金字塔,但无法弄清楚如何在我想要的地方获得0。对此的任何帮助将不胜感激。

这是我跑步时应该得到的:

X
X X.
X 0 X.
X 0 0 X.
X X X X X

这就是我到目前为止:

#include <iostream>
using namespace std;

int main()
{
     int i, j;

     for (i = 0; i < 5; ++i)
     {
          for (j = 0; j <= i; ++j)
               cout << " X ";
          cout << endl;
     }
     return 0;
}

3 个答案:

答案 0 :(得分:2)

关闭,现在你需要在某处打印O

第一行很简单,只需打印一个“X”。

然后对于那之后的每一行(除了最后一行),(提示,需要循环),你想要打印X然后O,直到你到达你的结尾希望打印另一个X。为此,请考虑每行需要多少O(提示,需要另一个循环)。

然后最后一行全是X,并且不要忘记在每行的末尾添加换行符。

如果您需要进一步的帮助,请随时发表评论。

答案 1 :(得分:1)

#include <iostream>
//using namespace std; //Shouldn't really use this

int main()
{
 int i, j;
 int height = 5;
 for (i = 0; i < height; ++i)
 {
      for (j = 0; j <= i; ++j)
      { //Braces are great
           if (j == 0 || j == i || i == height - 1)   //If at either the 1st or last place in the row, or on the last row.
           {
               std::cout << " X ";
           }else                   //Otherwise
           {
               std::cout << " O ";
           }
      }
      std::cout << std::endl; //we could use "/n" here in place of std::endl
 }
 return 0;
}

好的,有些事情,你不应该真正使用using namespace std;因为我无法解释的好理由,所以have a read。不要忘记在事物之后放置括号(你的内部循环)。是的,它们不是技术上需要的,但是它们使它更具可读性,如果你改变它并忘记把它们放进去,它就会阻止你弄乱。

之后,它只是完成它,并添加一个检查以查看我们所处的位置,以便我们可以决定打印XO。另外,我改变了它,以便高度变量。这意味着如果你想改变金字塔的高度,你只需要在一个地方改变它。

答案 2 :(得分:0)

当'j'介于1和i-1之间时,您只需要打印O.

提示:此检查应出现在“j”循环中。