可能是最后一行不需要回车符。在输出回车符的时候添加一个判断:
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;
}
看一下,给你改好了。
#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;
}