如何用c++语言输入n,输出以n为边长的空心棱形图案
2个回答
展开全部
1、代码如下:
2、debug:VS2012
3、原理:条件判断每行第1列和最后1列时输出边界字符
#include<iostream>
using namespace std;
void graphFunc(int baseLine = 4)
{
//正向金字塔
for(int i=0;i!=baseLine;i++)
{
//格式化空格;
for(int spac=0;spac!=baseLine-i-1;spac++)
cout << " ";
//核心输出
for(int j=0;j!=2*i+1;j++)
{
if(j==0 || j==2*i)
cout << "*";
else
cout << " ";
}
cout << endl;
}
//反向金字塔
for(int i=baseLine-1;i!=0;i--)
{
//格式化空格
for(int spac=0;spac!=baseLine-i;spac++)
cout << " ";
//核心输出
for(int j=0;j!=2*i-1;j++)
{
if(j==0 || j==2*(i-1))
cout << "*";
else
cout << " ";
}
cout << endl;
}
}
int main()
{
graphFunc(5);//想要多少自己修改参数
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//#include "stdafx.h"//If the vc++6.0, with this line.
#include <iostream>
using namespace std;
int main(void){
int i,j,t,n;
cout << "Input n(int n>0...\n";
cin >> n;
for(i=1;i<=n;i++){
for(j=0;j<n+n-i;cout << ' ',j++);
for(t=i<<1,j=1;j<t;j++)
cout << (j==1 || j==t-1 ? '*' : ' ');
cout << endl;
}
for(i-=2;i>0;i--){
for(j=0;j<n+n-i;cout << ' ',j++);
for(t=i<<1,j=1;j<t;j++)
cout << (j==1 || j==t-1 ? '*' : ' ');
cout << endl;
}
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询