一个c++小程序--独立思考举一反三

学习c++中遇到这么一个题目,要求输出如下图形

                        *

                      ***

                    *****

                  *******

                  *****

                  ***

                  *

其例程给的程序如下:

#include<iostream.h>

void main( )

{  int i,j,n=4;

   for(i=1;i<=n;i++)  //输出前4行图案

   { for(j=1;j<=30;j++)

       cout<<' ';  //在图案左侧空30列

     for(j=1; j<=8-2*i ;j++)

       cout<<' ';

     for(j=1; j<=2*i-1 ;j++)

       cout<<'*';

     cout<<endl;

   }

 for(i=1;i<=n-1;i++)  //输出后3行图案

  {

   for(j=1;j<=30;j++)

   cout<<' ';  //在图案左侧空30

   for(j=1;j<=7-2*i ;j++)

   cout<<'*';

   cout<<endl;

  }

}


但我感觉不大好,自己思考,改动了下,能实现任何奇数输出的图形,5, 7 9 11、、、、等等都可以,呵呵,学习不就是这样吗,能举一反三,不断优化,虽然很简单,但一直在努力追赶。。。加油!!!

#include<iostream>

using namespace std;
void main( )
{
int i,j,a,b;
cin>>a;
//cin>>b;
for(i=1;i<=a/2;i++)
{
for(j=1;j<=a-(2*i-1);j++)
cout<<" ";
for(j=1;j<=2*i-1;j++)
cout<<'*';
cout<<endl;
}
for(i=a-a/2;i>0;i--)
{
for(j=1;j<=2*i-1;j++)
cout<<'*';
cout<<endl;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值