【问题标题】:C++ Program for Specific Triangle Pattern特定三角形图案的 C++ 程序
【发布时间】:2019-02-16 17:52:12
【问题描述】:

我正在尝试形成由“目标”显示的三角形图案,我得到了一个标记为“实际输出”的图案。我也应该只使用嵌套的 for 循环和 % 运算符。除了 k 或代替 k 之外,我尝试使用 % 运算符和 i 或 j,但我无法完全获得我正在寻找的模式。看起来我的奇数行很好(第 1、3、5 行),但一切都不是。欢迎任何帮助。

// target: * + * + * +      actual output:   * + * + * +    
             + * + * +                         * + * + *
               * + * +                           * + * +
                 + * +                             * + *
                   * +                               * +
                     +                                 *
//
// code //
int main ()
{
    int i,j,k;
    for (i = 6; i >= 1; i--
    {
      for (j = 1;j <= (6 - i); j++ )
      {
          cout << " ";
      }


       for (k = 1;k<=i;k++)
       {
        if (k % 2 == 0) {



        cout << "+"; 


        }
        else
        {
         cout << "*";
        }
      }
}

【问题讨论】:

  • 不要使用额外的变量k,它总是从1开始。继续使用j 将其增加到6for ( ; j &lt;= 6; j++) if (j % 2) ...
  • 你也可以考虑i的值,不只是k,看我的回答

标签: c++ for-loop


【解决方案1】:

只是替换

if (k % 2 == 0)

通过

if ((k+i) % 2 == 0)

#include <iostream>
using namespace std;

int main ()
{
  int i,j,k;
  for (i = 6; i >= 1; i--)
  {
    for (j = 1;j <= (6 - i); j++ )
    {
      cout << " ";
    }

    for (k = 1;k<=i;k++)
    {
      if ((k+i) % 2 == 0) {
        cout << "+"; 
      }
      else
      {
        cout << "*";
      }
    }
    cout << endl;
  }
}

编译和执行:

pi@raspberrypi:/tmp $ g++ -pedantic -Wextra t.c
pi@raspberrypi:/tmp $ ./a.out
*+*+*+
 +*+*+
  *+*+
   +*+
    *+
     +

【讨论】:

    【解决方案2】:

    (根据我的评论)

    #include <iostream>
    
    using namespace std;
    
    int main ()
    {
        int i,j;
        for (i = 0; i < 6; ++i)
        {
            for (j = 0; j < i; ++j )
            {
                cout << ' ';
            }
            for ( ; j < 6; ++j) // just carry on to increment j
            {
                cout << (j % 2 ? '+' : '*');
            }
            cout << endl;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-23
      • 2022-01-03
      • 1970-01-01
      • 2020-10-06
      • 2023-02-15
      • 2021-06-18
      • 2018-01-05
      • 2014-03-11
      相关资源
      最近更新 更多