C ++模式输出

时间:2018-11-07 02:54:24

标签: c++ matrix output

我正在开发一个项目,该项目需要循环将模式输出到控制台。

我必须在代码中使用for循环。我已经到了某种程度,我只能将一半的图案显示在屏幕上,而其余的则不会出现在控制台中。

我的代码:

#include <iostream>

using namespace std;

int main() 
{
  int i, j;

  for (i=5; i>=1; i--)
  {
     for (j=1; j != i; j++)
     {
        cout << "5";
        cout << "#";
     cout << endl;
     }
  }
return 0;
}

因此此代码输出:

####5
###5
##5
#5
5

但是我需要它来输出:

####5
###5#
##5##
#5###
5####

如何更改代码以显示输出?

我希望这是有道理的, 谢谢

3 个答案:

答案 0 :(得分:0)

您的internal loop是跟踪5 left

  for (i=5; i >= 1; i--) {
     for (j=1; j <= 5; j++) {
        cout << (( i == j ) ? "5" : "#");
     }
     cout << endl;
  }

去除花哨的东西

for (i=5; i >= 1; i--)
{
    for (j=1; j <= 5; j++)
    {
        if( i == j ) 
           cout << "5";
        else
           cout << "#";
      }
         cout << endl;
}

答案 1 :(得分:-1)

我们要明确一点:OP的代码完全错误,我无法理解它是如何工作并产生该输出的,所以我从头开始编写了它。

之前编辑:

我不明白您的代码是如何工作的,所以我从头开始重写了它。

#include <iostream>

void output_sharp(int cnt)
{
    while (cnt != 0)
        std::cout << "#";
}

int main(int argc, char *argv[])
{
    for (int i = 0, j = 4; i != 5; ++i, --j) {
        output_sharp(j - i);
        std::cout << "5";
        output_sharp(4 - j);
    }

    return 0;
}

答案 2 :(得分:-1)

这就是您要寻找的。

#include <iostream>

using namespace std;

int main()
{
    int i,j;

  for (i=4; i>=0; i--)
  {
     for(int z=0; z<5;z++){
         if(z==i){
             cout <<"5";
         }
         else{
         cout <<"#";
         }
     }
     cout <<"\n";
  }
  return 0;
}

####5
###5#
##5##
#5###
5####

Chears:-)