在练习循环控制语句时,经常会遇到一类问题:使用循环控制打印星号(*)来形成各种各样的图案,并强调所有的星号(*)都要用单条的输出语句cout<<"*";来打印。

  例如打印

                 

  通常使用两个嵌套的for循环可以有效的解决此类问题。

  不过,我们一般每次只打印一个图案,如何将不同图案的代码整合到一起,并排的打印多个图案呢?

  例如:如何并排打印以下4个图案呢?

    

   首先,我们知道外层循环规定了行数,内层循环规定了列数。从上图中不难发现,整个图案的行数相同,通过在每一列打印星号(*)/ 空格来形成不同的图案,这就要求在操作每一行时,同时打印四个图案,所以程序应该有一个统一的外循环,内部依次有四个不同的内循环。

  而且,为了控制小图案之前的距离,要把每一个小图案想象成一个整体。

  比如打印(a)图案我们通常会使用如下方法

     for (int i=; i<; i++)
{
for (int j=; j<i; j++)
{
cout<<"*";
}
cout<<endl;
}

  这样只打印星号(*),图案实际上只是一个直角三角形,它每行与后面图案的间隔都不相同,所以我们在空白处补充空格,把图案变成一个10*10的矩形(空白的部分有空格占位),代码如下:

     for (int i=; i<; i++)
{
for (int j=; j<; j++)
{
if (i < j)
cout<<" ";
else
cout<<"*";
}
cout<<endl;
}

    循环的条件完全相同,通过条件语句来控制每行星号和空格的数量,而且可以用三目运算符简化

            i < j ? cout<<" " : cout<<"*";

  整个程序代码为:

 #include <iostream>

 using namespace std;

 int main()
{
for (int i=; i<; i++)
{
for (int j=; j<; j++)
{
i < j ? cout<<" " : cout<<"*";
}
cout<<"\t"; for (int j=; j<; j++)
{
i + j > ? cout<<" " : cout<<"*";
}
cout<<"\t"; for (int j=; j<; j++)
{
i > j ? cout<<" " : cout<<"*";
}
cout<<"\t"; for (int j=; j<; j++)
{
i + j < ? cout<<" " : cout<<"*";
}
cout<<endl;
}
return ;
}

  运行效果:

并排打印多个图案(C++实现)的更多相关文章

  1. 题目:python 打印出如下图案(菱形):

    # 题目:打印出如下图案(菱形): # # * # *** # ***** # ******* # ***** # *** # * nu = 1 # 开始值 k = 2 # 变量值 while nu ...

  2. C语言控制台打印3D爱心图案

    非常多程序猿都认为自己的编程工作十分的鼓噪乏味.一整天面对的都是一些写不完的代码和改不完的Bug.今天我们要给大家分享一些有趣的C语言代码,也许能够为你无聊的工作带来一丝乐趣. 这些代码能够完毕几个不 ...

  3. 给工作添点乐趣--- 为Idea编译时打印图案

    控制台输出图案--banner 之前用vs开发时,也可以自己设置编译时控制台打印出的图案,我们管它叫banner. 给idea设置banner 先见一下效果图 还有重磅的 好了.其实设置这个很简单.分 ...

  4. Java50道经典习题-程序19 输入行数打印菱形图案

    题目:根据用户输入的行数打印菱形图案,若用户传入的是为偶数则提示用户重新输入,例如输入数字7打印出如下菱形图案   *  *** ************ *****  ***   *分析:先把图形分 ...

  5. JAVA 基础编程练习题19 【程序 19 打印菱形图案】

    19 [程序 19 打印菱形图案] 题目:打印出如下图案(菱形) *    ***  ************  *****    ***      * 程序分析:先把图形分成两部分来看待,前四行一个 ...

  6. Java例题_19 打印菱形图案

    1 /*19 [程序 19 打印菱形图案] 2 题目:打印出如下图案(菱形) 3 * 4 *** 5 ***** 6 ******* 7 ***** 8 *** 9 * 10 */ 11 12 /*分 ...

  7. java中如何打印规定图案? 举例说明

    9.4 print out the following pattern(打印图案). * *** ***** ******* ***** *** * 提示: 1)本题上面的图案和下面的图案是一样的.所 ...

  8. Springboot 系列(八)动态Banner与图片转字符图案的手动实现

    使用过 Springboot 的对上面这个图案肯定不会陌生,Springboot 启动的同时会打印上面的图案,并带有版本号.查看官方文档可以找到关于 banner 的描述 The banner tha ...

  9. 32. Springboot 系列(八)动态Banner与图片转字符图案的手动实现

    使用过 Springboot 的对上面这个图案肯定不会陌生,Springboot 启动的同时会打印上面的图案,并带有版本号.查看官方文档可以找到关于 banner 的描述 The banner tha ...

随机推荐

  1. js弹出页面

    建立一个HTML文件,输入以下代码就能弹出页面 <!DOCTYPE html> <html lang="en"> <head> <meta ...

  2. html table 的属性

    表格table th,td 文字顶部对齐 <th valign="top"></th> <td valign="top">& ...

  3. 【起航计划 005】2015 起航计划 Android APIDemo的魔鬼步伐 04 App->Activity->Custom Dialog Dialog形式的Activity,Theme的使用,Shape的使用

    App->Activity->Custom Dialog 例子使用Activity 来实现自定义对话框 类CustomDialogActivity本身无任何特别之处.关键的一点是其在And ...

  4. 【工作中学习】CreateProcessAsUser失败,错误码:1314

    事情起因是这样, 产品的Windows服务(Service)之前一直是用Local System Account在运行的,但这个版本有需求要换成使用普通的Domain User来运行,如下图: 但却出 ...

  5. python类的反射

    反射 通过字符串映射或者修改程序运行时的状态.属性.方法, 有一下4个方法 小例子--根据用户输入调用方法: class Dog(object): def __init__(self,name): s ...

  6. Struts2_结果类型_resulttype_1

    看下面的例子: 一般使用4种:dispatcher(容器内跳转到JSP页面).redirect(重定向到jsp页面).chain(容器内跳转到另一个Action).redirectAction(重定向 ...

  7. eclipse 中 添加 tomcat后,启动访问时出现404

    1.切换到 server view. 2.双击出问题的 Server,出现如下页面. 3.选中Server,右键,点击选项卡的 Publish,就能进行编辑. 4.Server path 选中第二项: ...

  8. 然之协同系统3.5(OA+CRM+CASH+TEAM)

    平台: Ubuntu 类型: 虚拟机镜像 软件包: mariadb-server 10.0.25 nginx 1.10.0 php7.0.4 collaboration commercial crm ...

  9. Linux命令之查看日志等实时文件命令(less 、tail)使用

    一.less的使用 1)less  文件名,即可快速打开文件 2)相关查看搜索 3)利用键盘向上向下箭头键盘上的向上和向下箭头,点击一次向下简单,文件内容往下读取一行:点击一次向上箭头,文件内容,往上 ...

  10. 使用C语言来实现模块化

    除了C语言以及C++编程语言之外,在其它现在非常流行的开发语言中,比如说:java,php,jsp等等.我们很难想象到缺少标准化的模块管理机制是一件多么可怕的事情.但是这往往也是由C语言本身的设计哲学 ...