如何用c++语言输入n,输出以n为边长的空心棱形图案

 我来答
百度网友3a00d8c64
2016-10-29 · TA获得超过599个赞
知道小有建树答主
回答量:430
采纳率:64%
帮助的人:322万
展开全部

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;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2016-10-29 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6624万
展开全部
//#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;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式