Chinaunix首页 | 论坛 | 博客
  • 博客访问: 183162
  • 博文数量: 67
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 622
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-19 19:12
文章分类

全部博文(67)

分类: C/C++

2015-04-02 19:46:09

  *       
  ***       
*****     
 ***      
      *           
c编程输出如上图形,可以是1、3、5......等奇数
void f(int n)
{
    int k =1; //第一行1个*
    for(int i =1; i<=n; i++)
    {
        int m = n/2 + 1;  //中间位置
        if(i < m) //上半部分
        {
            for(int j = 0; j < m-i; j++) //空格个数逐行减一
            {
                cout<<" ";
            }
            for(int j = 1; j <= k; j++)
            {

                if(j != k) cout<<"*";
                else cout<<"*"<
            }
            k+=2; //下一行的*个数加2
        }else if(i == m) //中间最长的行
        {
             for(int j = 0; j < m-i; j++)
            {
                cout<<" ";
            }
            for(int j = 1; j <= k; j++)
            {

                if(j != k) cout<<"*";
                else cout<<"*"<
            }
        }
else //下半部分
        {
            k-=2; //*个数逐行减2
             for(int j = 0; j < i-m; j++)
            {
                cout<<" ";
            }
            for(int j = 1; j <= k; j++)
            {

                if(j != k) cout<<"*";
                else cout<<"*"<
            }
        }
    }
}
阅读(903) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~