如何用c++做图形

c++的作用很多,多重循环也不难,代码分析

1.用c++多重循环实现:

打印带空格的实心菱形

实现效果:

如何用c++做图形_第1张图片

代码如下:

#include   
using namespace std;  
int main()  //打印带空格的实心菱形 
{  
    int i, j, k;  
    for(i=0; i<=3; i++)          //i控制上半部分的4行  
    {  
        for(j=0; j<6-2*i; j++)
		{  					  //j通过i控制打印空格  
            cout<<" "; 
		} 				 //第一行6个空格,第二行4个,第三行2个 
        for(k=0; k<=2*i; k++)//k通过i控制打印星号 ,最多输出6个*  
		{ 	
            cout<<"*";       //从0开始 
        }
        cout<2*i; j--)    //j通过i控制打印星号 ,从5开始 
            cout<<"*";  
        cout<

分析代码:分为上半部分和下半部分,因为上边4行是递增的,下三行递减,不能放一个循环里。

上边循环:

 for(i=0; i<=3; i++)          //i控制上半部分的4行  
    {  
        for(j=0; j<6-2*i; j++)
		{  					  //j通过i控制打印空格  
            cout<<" "; 
		} 				 //第一行6个空格,第二行4个,第三行2个 
        for(k=0; k<=2*i; k++)//k通过i控制打印星号 ,最多输出6个*  
		{ 	
            cout<<"*";       //从0开始 
        }
        cout<

上边4行:通过i控制行数,在i这层循环中分别有两个互不相关的循环,控制空格数量和*数量,j中空格控制:j<6-2*i,

从6到4到2到0,有一定规律可寻,k控制*的个数,从0行的第一个开始,最多7个,都是按着i的变化而变化的。

下边3行同理,只是空格在后边,逆向思维就是*打印完了打印空格,其实就不需要空格了。

可以自己思考下如果i从0开始循环哪些需要变化

2.打印不带空格的实心菱形

#include   
using namespace std;  
int main()  
{  					//打印不带空格的实心菱形 
    int i, j, k;  
    for(i=0; i<=3; i++)  //控制前4行 
    {  
        for(j=0; j<=2-i; j++)  
            cout<<" ";//不在*之前输入空格  
        for(k=0; k<=2*i; k++)  //k从0到6 
            cout<<"*";  
        cout<

结果:

如何用c++做图形_第2张图片

总结:多重循环就是一个父循环里边带几个子循环,子循环的条件可以依据父循环决定也可以不根据父循环,但一定要逻辑清楚,不能被好几个花括号弄糊涂。

你可能感兴趣的:(c++图形)