输入一个整数n,请你输出一个n行用数字构成的正三角形。

img


写法如下

img


哪里出问题了?运行是对的,提交说格式错误,请找出问题所在,谢谢!

可能是最后一行不需要回车符。在输出回车符的时候添加一个判断:
if(i<l) cout <<endl;

代码如下:

#include <iostream>
using namespace std;
int main()
{
    int l;  
    cin >> l;
    
    for(int i=1;i<=l;++i)
    {
        for(int j=1;j<=l-i;++j)
        {
           cout<<" ";
        }
        for(int j=1;j<=2*i-1;++j)
        {
            cout << i;
        }
        if(i<l)
            cout << endl;
    }
    return 0;
}

最后一次循环之后不用输出换行了,在cout<<endl之前判断下i!=l成立时才输出

if(i!=l)
cout<<endl;

应该是最后一行换行的问题

#include <iostream>

using namespace std;

int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n-i;j++)//打印空格
        {
            cout<<" ";
        }
        for(int j=1;j<=2*i-1;j++)//打印数字
        {
            cout<<i;
        }
        if(i<n)//最后一行打印后不在换行
        {
            cout<<"\n";
        }

    }
    return 0;
}

看一下,给你改好了。

img

#include <iostream>

using namespace std;

int main() {
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n - i; j++) //打印空格
        {
            cout << " ";
        }
        for (int j = 1; j <= 2 * i - 1; j++) //打印数字
        {
            cout << i;
        }
        if (i < n) //最后一行打印后不在换行
        {
            cout << "\n";
        }
    }
    return 0;
}