第9周上机实践项目3——输出星号图

(a)

问题及代码:

/*
 * Copyright (c) 2014, 烟台大学计算机学院
 * All rights reserved.
 * 文件名称:test.cpp
 * 作    者:辛彬
 * 完成日期:2014年 10 月 23 日
 * 版 本 号:v1.0
 *
 * 问题描述:编程序,输出星号图。
 * 输入描述:没有输入。
 * 程序输出:星号图。
 */
#include <iostream>
using namespace std;
int main()
{
    int ilist=1,line;
    double m=12;
    do
    {
        line=1;
           do
           {
               cout <<"*";
               line=line+1;
           }
           while(line<m);
        cout <<endl;
        m=m-2;
        ilist++;
    }
    while(ilist<7);
    return 0;
}


运行结果:

(b)

问题及代码:

/*
 * Copyright (c) 2014, 烟台大学计算机学院
 * All rights reserved.
 * 文件名称:test.cpp
 * 作    者:辛彬
 * 完成日期:2014年 10 月 23 日
 * 版 本 号:v1.0
 *
 * 问题描述:编程序,输出星号图。
 * 输入描述:没有输入。
 * 程序输出:星号图。
 */
#include <iostream>
using namespace std;
int main()
{
    int ilist=1,line,sum,i=1;
    double m=7;
    do
    {
        line=1;
           do
           {
               cout <<" ";
               line=line+1;
           }
           while(line<m);
        sum=0;
           do
           {
               cout <<"*";
               sum++;
           }
           while(sum<i);
        i++;
        cout <<endl;
        m=m-1;
        ilist++;
    }
    while(ilist<7);
    return 0;
}



运行结果:

(c)

问题及代码:

/* 
 * Copyright (c) 2014, 烟台大学计算机学院 
 * All rights reserved. 
 * 文件名称:test.cpp 
 * 作    者:辛彬 
 * 完成日期:2014年 10 月 23 日 
 * 版 本 号:v1.0 
 * 
 * 问题描述:编程序,输出星号图。 
 * 输入描述:没有输入。 
 * 程序输出:星号图。 
 */  
#include <iostream>
using namespace std;
int main()
{
    int x,ix=1,y=1,m=1,im=10;
    cout <<"***********\n";
    do
    {
        x=0;
        do
        {
            cout <<" ";
            x++;
        }
        while(x<m);
        ix=1;
        do
        {
            cout <<"*";
            ix++;
        }
        while(ix<im);
        cout <<endl;
        m++;
        im=im-2;
        y++;
    }
    while(y<6);
    return 0;
}


运行结果:

(d)

问题及代码:

/*
 * Copyright (c) 2014, 烟台大学计算机学院
 * All rights reserved.
 * 文件名称:test.cpp
 * 作    者:辛彬
 * 完成日期:2014年 10 月 23 日
 * 版 本 号:v1.0
 *
 * 问题描述:编程序,输出星号图。
 * 输入描述:没有输入。
 * 程序输出:星号图。
 */
#include <iostream>
using namespace std;
int main()
{
    int x,ix=1,y=1,m=1,im=5;
    do
    {
        x=0;
        do
        {
            cout <<" ";
            x++;
        }
        while(x<im);
        ix=0;
        do
        {
            cout <<"*";
            ix++;
        }
        while(ix<m);
        cout <<endl;
        m+=2;
        im--;
        y++;
    }
    while(y<6);
    cout <<"***********\n";
    return 0;
}


运行结果:

(e)

问题及代码:

/*
 * Copyright (c) 2014, 烟台大学计算机学院
 * All rights reserved.
 * 文件名称:test.cpp
 * 作    者:辛彬
 * 完成日期:2014年 10 月 23 日
 * 版 本 号:v1.0
 *
 * 问题描述:编程序,输出星号图。
 * 输入描述:没有输入。
 * 程序输出:星号图。
 */
#include <iostream>
using namespace std;
int main()
{
    int x,ix=1,y=1,m=1,im=5;
    cout <<"     *\n";
    do
    {
        x=1;                    //这儿都是编译空格的部分
        do                      //
        {                       //
            cout <<" ";         //
            x++;                //
        }                       //
        while(x<im);            //
        cout <<"*";             //这儿输出第一个星号
        x=0;                    //这儿输出第二个空格
        do                      //
        {                       //
            cout <<" ";         //
            x++;                //
        }                       //
        while(x<m);             //
        cout <<"*";             //这里输出第二个星号
        cout <<endl;             //换行
        m+=2;
        im--;
        y++;
    }
    while(y<5);
    cout <<"***********\n";
    return 0;
}


运行结果:

(f)

问题及代码:

 * 文件名称:test.cpp
 * 作    者:辛彬
 * 完成日期:2014年 10 月 23 日
 * 版 本 号:v1.0
 *
 * 问题描述:编程序,输出星号图。
 * 输入描述:没有输入。
 * 程序输出:星号图。
 */
#include <iostream>
using namespace std;
int main()
{
    int x,y=1,m=6,im=1,ix;
    for(;y<6;m--,im+=2,y++)
    {
        for(x=1;x<m;x++)cout <<" ";
        for(ix=0;ix<im;ix++)cout <<"*";
        cout <<endl;
    };
    cout <<"***********\n";
    m=1,im=9,y=1;
    for(;y<6;m+=1,im-=2,y++)
    {
        for(x=0;x<m;x++)cout <<" ";
        for(ix=0;ix<im;ix++)cout <<"*";
        cout <<endl;
    };
    return 0;
}


运行结果:

学习感悟:星号图算是一大难点了,非常累人。最后一个我把do~while语句改成了for语句,文字量明显减少,但我比较笨,这种太抽象的语句一时半会理解不过来,所以以后可能会先写while语句,再转化成for语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值