您的位置:首页 > 其它

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

2014-10-23 14:47 363 查看
(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语句。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: