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

简介: 求解思路请参考http://blog.csdn.net/sxhelijian/article/details/8059505。下面是任务http://blog.csdn.net/sxhelijian/article/details/8045279中所有星号图的参考解答。分别只给出一种参考,读者可以写出更多的其他解答。(1)要输出的是:代码:#include <iostrea

求解思路请参考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;	
}




  


目录
相关文章
|
7月前
|
存储 监控 算法
【C++ 软件设计思路】高效管理历史任务记录:内存与磁盘结合的策略解析
【C++ 软件设计思路】高效管理历史任务记录:内存与磁盘结合的策略解析
125 0
|
2月前
|
缓存 负载均衡 Java
c++写高性能的任务流线程池(万字详解!)
本文介绍了一种高性能的任务流线程池设计,涵盖多种优化机制。首先介绍了Work Steal机制,通过任务偷窃提高资源利用率。接着讨论了优先级任务,使不同优先级的任务得到合理调度。然后提出了缓存机制,通过环形缓存队列提升程序负载能力。Local Thread机制则通过预先创建线程减少创建和销毁线程的开销。Lock Free机制进一步减少了锁的竞争。容量动态调整机制根据任务负载动态调整线程数量。批量处理机制提高了任务处理效率。此外,还介绍了负载均衡、避免等待、预测优化、减少复制等策略。最后,任务组的设计便于管理和复用多任务。整体设计旨在提升线程池的性能和稳定性。
84 5
|
7月前
|
存储 算法 Java
【C/C++ 线程池设计思路】 深入探索线程池设计:任务历史记录的高效管理策略
【C/C++ 线程池设计思路】 深入探索线程池设计:任务历史记录的高效管理策略
187 0
|
7月前
|
安全 Java 调度
【C/C++ 线程池设计思路 】设计与实现支持优先级任务的C++线程池 简要介绍
【C/C++ 线程池设计思路 】设计与实现支持优先级任务的C++线程池 简要介绍
221 2
|
7月前
|
监控 Linux 编译器
Linux C++ 定时器任务接口深度解析: 从理论到实践
Linux C++ 定时器任务接口深度解析: 从理论到实践
260 2
|
7月前
|
网络协议 C++
C++异步网络库workflow入门教程(1)HTTP任务
创建任务方法原型 在workflow中所有的客户端任务都放在`WFTaskFactory`工厂类中 + `url:`请求的http url + `redirect_max:`表示最大重定向次数。如果在请求过程中遇到重定向,该参数指定了最多允许重定向的次数。 + `retry_max`:表示最大重试次数。如果请求失败,该参数指定了最多可以重试的次数。 + `callback`:这是一个回调函数的指针,用于处理请求的响应。原型为`using http_callback_t = std::function
261 0
|
Java C++
c++基于ThreadPool实现灵活的异步任务
c++基于ThreadPool实现灵活的异步任务
【C++11】C++多线程之条件变量,异步启动任务(1)
【C++11】C++多线程之条件变量,异步启动任务(1)
140 0
|
C++
时间类-输入和输出(C++版本)
请设计时间类 MYTIME,它包含三个私有数据成员:hour, minute, second,均为整数,分别表示时、分、秒。让我们从这里起步,一步一步地完成一个功能完备的时间类,可以适用于处理任何程序中的时间数据。:时间的输出函数不得影响之后其它数据的输出。
274 0
时间类-输入和输出(C++版本)