(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语句。