c++幸好问题2

来源:百度知道 编辑:UC知道 时间:2024/09/28 13:50:18
用c++编辑星号问题,从上到下呈塔状,中间是空的,也就是说第行一个星星,第二行2个星星当时中间有个空格,第三行2个星星中间有2个空格,第四行有2个星星中间3个空格,第5行一行都是星星,到底该如何组织语句呢?

#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
m=2*n-1;
for(int i=0;i<n;i++)
{
for(int j=0;j<2*n-1;j++)
{
if(i!=n-1)
{
if(j==n-1-i||j==n-1+i)
cout<<"*";
else cout<<' ';
}
else cout<<'*';

}
cout<<endl;
}

return 0;
}

楼主说的那样的图形在c++中好像不能实现,因为在c++中好像不能输入一个字符的非整数倍,如:我们无法输入半个空格。所以要想实现楼主所要的图形,每行的空格应+2递增来实现,如果每行加+1个空格,我们要输入半个空格才能控制输入格式。我暂时还不清楚,有没有输入半个空格的函数,如果楼主知道,告诉我下,我把程序改过来。

每行加2的空格代码如下:
#include <iostream>
#include<iomanip>
using namespace std;
int main()
{
int i,j,l;
cout<<"请输入金字塔的行数:"<<endl;
cin>>l;
cout<<setw(l+9)<<"*"<<endl;
for(i=1;i<l-1;i++)
{
for(j=1;j<l+9-i;j++)
cout<<" &q