C++第7周任务3-输出星号图全解

求解思路请参考http://blog.csdn.net/sxhelijian/article/details/8059505

下面是任务http://blog.csdn.net/sxhelijian/article/details/8045279中所有星号图的参考解答。分别只给出一种参考,读者可以写出更多的其他解答。

(1)

要输出的是:

代码:

#include <iostream>
using namespace std;
int main( )
{
	int i,j,n=6;
	for(i=n;i>=1;--i) //一共要输出n行
	{
		//输出第i行
		for(j=1; j<=2*i-1; ++j) //输出2*i-1个星号
			cout<<"*";
		cout<<endl;
	}
	return 0;
}

(2)

要输出的是:

代码:

#include <iostream>
using namespace std;
int main( )
{
	int i,j,n=6;
	for(i=1;i<=n;++i) //一共要输出n行
	{
		//输出第i行
		for(j=1; j<=n-i; ++j) //输出n-i个空格
			cout<<" ";
		for(j=1; j<=i; ++j) //输出i个星号
			cout<<"*";
		cout<<endl;
	}
	return 0;
}

(3)

要输出的是:

代码:

#include <iostream>
using namespace std;
int main( )
{
	int i,j,n=6;
	for(i=n;i>=1;--i) //i由大变小
	{
		//输出第i行
		for(j=1; j<=n-i; ++j) //关键:输出的是n-i个空格
			cout<<" ";
		for(j=1; j<=2*i-1; ++j) //关键:输出的是2*i-1个星号
			cout<<"*";
		cout<<endl;
	}
	return 0;
}

(4)

要输出的是:

代码:

#include <iostream>
using namespace std;
int main( )
{
	int i,j,n=6;
	for(i=1;i<=n;++i) //一共要输出n行
	{
		//输出第i行
		for(j=1; j<=n-i; ++j) //输出n-i个空格
			cout<<" ";
		for(j=1; j<=2*i-1; ++j) //输出2*i-1个星号
			cout<<"*";
		cout<<endl;
	}
	return 0;
}

(5)

要输出的是:

代码:这一个稍微麻烦一些在于,第1行和最后一行单独处理,而中间的n-2行则有规律:若干空格、1个星号、若干空格、1个星号

#include <iostream>
using namespace std;
int main( )
{
	int i,j,n=6;
	//输出第一行:n-1个空格和1个星号并换行
	for(j=1; j<=n-1; ++j) //输出n-i个空格
		cout<<" ";
	cout<<"*"<<endl;

	//再输出中间的n-2行
	for(i=2;i<=n-1;++i) //一共要输出n-2行
	{
		//输出第i行
		for(j=1; j<=n-i; ++j) //输出n-i个空格
			cout<<" ";
		cout<<"*";  //再输出一个星号
		for(j=1; j<=2*i-3; ++j) //然后输出2*i-3个空格
			cout<<" ";
		cout<<"*"<<endl; //输出一个星号后本行结束,换行
	}

	//输出最后一行:2*n-1个星号
	for(j=1; j<=2*n-1; ++j)
		cout<<"*";
	cout<<endl;
	return 0;
}

(6)

要输出的是:

参考代码:

#include <iostream>
using namespace std;
int main( )
{
	int i,j,n=6;  //n代表上三角行数
	//先输出上三角
	for(i=1;i<=n;++i) //输出n行
	{
		//输出第i行
		for(j=1; j<=n-i; ++j) //输出n-i个空格
			cout<<" ";
		for(j=1; j<=2*i-1; ++j) //输出2*i-1个星号
			cout<<"*";
		cout<<endl;
	}
	//下面输出下三角
	for(i=1;i<=n-1;++i) //输出n-1行
	{
		//输出第i行
		for(j=1; j<=i; ++j) //输出i个空格
			cout<<" ";
		for(j=1; j<=2*(n-i)-1; ++j) //输出2*i-1个星号
			cout<<"*";
		cout<<endl;
	}
	return 0;
}

  

时间: 2024-09-20 05:39:22

C++第7周任务3-输出星号图全解的相关文章

C++第7周任务3-输出星号图详解示例

任务要求见http://blog.csdn.net/sxhelijian/article/details/8045279,本文以输出下面的星号图为例,再次体会"自顶向下,逐步求精"的设计过程. 要输出的星号图是: 将一个图,看作为6行,完成了第一级的分解,提到的算法框架为: i=1; While(i<=6) //需要输出6行 { 输出第i行; 换行: ++i: } 对于"输出第i行"的任务,可以进行细化: 先输出若干空格(多少个空格?第1行0个,第2行1个,第

C++程序设计实践学材系列(21)——1.5.1 引入循环——输出星号图

回到系列文章的目录--[系列文章目录] 回到本章目录--[第1章目录] 1.5.1 引入循环--输出星号图 例 1.5 编程序,输出8个星号(即'*'),如下图 这个容易,也就输出一行信息. 可以写出程序: //例程ch1-9.cpp #include <iostream> using namespace std; int main() { cout<<"********"<<endl; return 0; } 现在问题变为,输出50个呢?你可以一边

C++实践参考解答 输出星号图

[项目:输出星号图]自选下面的几个图案,编程序输出(自选两个完成,其他的想想思路即可).   (c)"向下的等腰三角"详解 将一个图,看作为6行,完成了第一级的分解,设计的算法框架为: i=1; While(i<=6) //需要输出6行 { 输出第i行; 换行: ++i: } 对于"输出第i行"的任务,可以进行细化: 先输出若干空格(多少个空格?第1行0个,第2行1个,第3行2--第6行5个): 再输出若干个星号(多少星号?第一行11个,第2行9个--第6行1

C++第12周项目1——重温星号图

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目1-调用函数输出星号图] 这一组的练习意在通过调用函数输出星号图,体会与理解函数的工作过程,并为其后编制自定义函数实现特定功能,打下基础. 任务1:补充完下面的程序,使程序输出上面的两个星号图,要求在main()函数中调用自定义函数printstars(). 要求:左图必需实现,右图尝试实现. 输出左图的参考解答: //for循环中调用函数printstars的程序

《C语言及程序设计》实践参考——输出小星星(全解)

返回:贺老师课程教学链接  项目要求 (1)要输出的是: 代码: #include <stdio.h> int main( ) { int i,j,n=6; for(i=n;i>=1;--i) //一共要输出n行 { //输出第i行 for(j=1; j<=2*i-1; ++j) //输出2*i-1个星号 printf("*"); printf("\n"); } return 0; } (2)要输出的是: 代码: #include <s

2014秋C++第11周项目1参考-函数版星号图

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.   [项目1-函数版星号图]这一组的练习意在通过调用函数输出星号图,体会与理解函数的工作过程,并为其后编制自定义函数实现特定功能.(1)补充完下面的程序,使程序输出星号图: #include <iostream> using namespace std; void printsta

C++程序设计实践学材系列(24)——1.5.4 输出各种星号图

回到系列文章的目录--[系列文章目录] 回到本章目录--[第1章目录] 1.5.4 输出各种星号图 我们实践"自顶向下,逐步求精"的思维,设计和实现一些更好玩的星号图,也进一步建立循环的概念. 例1.8 编程序,输出如下的星号图 对这个"囫囵"的星号图,我们略加分解一下,可以发现一个星号图是由若干行构成,于是"求精"的结果是"输出一个星号图就是要输出若干行",接下来再考虑的"输出某一行"的问题. 在&quo

《C语言及程序设计》实践参考——函数版星号图

返回:贺老师课程教学链接  项目要求 [项目1-函数版星号图]这一组的练习意在通过调用函数输出星号图,体会与理解函数的工作过程,并为其后编制自定义函数实现特定功能.(1)补充完下面的程序,使程序输出星号下面的星号图: #include <stdio.h> void printstars(int m) //定义能输出一行m个星号的函数 { int j; for (j=1; j<=m; ++j) printf("*"); } int main( ) { int n=6;

《C语言及程序设计》实践参考——输出点阵图

返回:贺老师课程教学链接  C语言及程序设计初步  项目要求 题目:编一个程序,用你的姓名读音首字母,组成类似的趣图 提示:printf("--\n");语句会输出双引号中的内容,'\n'完成换行 参考解答: #include <stdio.h> int main() { printf("* * * ***\n"); printf("* * * *\n"); printf("* * * *\n"); printf(