【问题标题】:C++ pattern outputC++ 模式输出
【发布时间】:2018-11-07 02:54:23
【问题描述】:

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

我必须在我的代码中使用 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####

如何更改我的代码以使其显示该输出?

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

【问题讨论】:

  • 请查看您的内部循环。现在,想象你在除第一条线之外的任何一条线上。假设您是执行这些指令的计算机,并在纸上写下发生了什么。我希望有人会出现并通过将其视为有趣的“哦,我可以做到”的练习来给您答案,但是如果发生这种情况,您将学到的像程序员一样思考的知识要远远少于您工作的知识出来。
  • “所以这段代码输出:”——不,它没有。所示代码始终输出“5”,后跟“#”。每个“5”后面跟着一个“#”。执行此程序产生的声明输出与代码不匹配。您的问题无法回答,因为显示的代码不是导致声明输出的真实代码,或者问题中存在印刷错误。

标签: c++ matrix output


【解决方案1】:

您的internal loop 是跟踪将5 从right 移动到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;
}

【讨论】:

  • 非常感谢您的帮助!我真的很感激
【解决方案2】:

这就是你要找的。​​p>

#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####

切斯:-)

【讨论】:

    【解决方案3】:

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

    before_edit:

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

    #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;
    }
    

    【讨论】:

    • “我无法理解你的代码是如何工作的,所以我从头开始重写。” -- 祝你找到一份软件开发工作好运! ;)
    • @paddy 看看 OP 的代码。你能理解它是如何产生输出的吗?我不能。所以我从头开始写。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 2020-08-15
    • 2017-02-10
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多