在创建楼梯图案的代码中出了什么问题?

12 浏览
0 Comments

在创建楼梯图案的代码中出了什么问题?

我正在尝试根据输入的整数创建一个阶梯图案。(例如:如果我输入6,输出将如下所示):\n

     #
    ##
   ###
  ####
 #####
######

\n三角形的高度和宽度都是6。我尝试了一下我认为可以复制这个图案的方法(如下所示):\n

//第一种方法
void staircase(int n){
std::string mystring;
   int j=1;
   int k=0;
   for (int i=0;i

\n这两种方法都返回以下输出:\n

#
##
###
####
#####
######

\n起初,我以为第一个while循环被跳过了,但当我尝试在第一个while循环中放置一个变量来测试输出时,情况并非如此。有人能解释一下吗?我是否遗漏了什么重要的东西?因为这似乎是一个相当简单的问题,但我过去一个小时都无法让它正常工作。

0
0 Comments

在你的代码中,存在一些逻辑上的混淆。请尝试以下代码:

void staircase(int length) {
    int n = length;
    for (int i = 0; i <= n; i++) {
        for (int j = n; j >= 0; j--) {
            if (j < i) {
                cout << "#";
            }
            else {
                cout << " ";
            }
        }
        cout << endl;
    }
}

问题的原因是在内部循环中,你将`j`的条件判断写成了`j > i`,导致了错误的输出。通过将条件判断更正为`j < i`,即可解决问题。

0
0 Comments

在你的代码中有一些小错误。让我来帮你纠正它们:

#include 
using namespace std;
void staircase(int n){
    std::string mystring;
    int j=1;
    int k=0;
    // 这个 for 循环的目的是为每一行获取由 # 组成的字符串
    for (int i=0;i

第二个方法也是一样,你需要将字符串设为空,j 和 k 设为 0。

希望对你有所帮助,

谢谢,

Rajkumar

非常感谢!我忘记在连接空格和符号之前放一个空字符串。

0