C++达成并排打印多个图案
发布时间:2021-11-12 17:51:07 所属栏目:教程 来源:互联网
导读:根据PHP编程网_黄冈站长网 Www.0713Zz.Com报道 在练习循环控制语句时,经常会遇到一类问题:使用循环控制打印星号(*)来形成各种各样的图案,并强调所有的星号(*)都要用单条的输出语句cout*;来打
|
根据PHP编程网_黄冈站长网 Www.0713Zz.Com报道
在练习循环控制语句时,经常会遇到一类问题:使用循环控制打印星号(*)来形成各种各样的图案,并强调所有的星号(*)都要用单条的输出语句cout<<"*";来打印。 例如打印 通常使用两个嵌套的for循环可以有效的解决此类问题。 不过,我们一般每次只打印一个图案,如何将不同图案的代码整合到一起,并排的打印多个图案呢? 例如:如何并排打印以下4个图案呢? 首先,我们知道外层循环规定了行数,内层循环规定了列数。从上图中不难发现,整个图案的行数相同,通过在每一列打印星号(*)/ 空格来形成不同的图案,这就要求在操作每一行时,同时打印四个图案,所以程序应该有一个统一的外循环,内部依次有四个不同的内循环。 而且,为了控制小图案之前的距离,要把每一个小图案想象成一个整体。 比如打印(a)图案我们通常会使用如下方法 for (int i=0; i<10; i++) { for (int j=0; j<i; j++) { cout<<"*"; } cout<<endl; } 这样只打印星号(*),图案实际上只是一个直角三角形,它每行与后面图案的间隔都不相同,所以我们在空白处补充空格,把图案变成一个10*10的矩形(空白的部分有空格占位),代码如下: for (int i=0; i<10; i++) { for (int j=0; j<10; j++) { if (i < j) cout<<" "; else cout<<"*"; } cout<<endl; } 循环的条件完全相同,通过条件语句来控制每行星号和空格的数量,而且可以用三目运算符简化 i < j ? cout<<" " : cout<<"*"; 整个程序代码为: #include <iostream> using namespace std; int main() { for (int i=0; i<10; i++) { for (int j=0; j<10; j++) { i < j ? cout<<" " : cout<<"*"; } cout<<"t"; for (int j=0; j<10; j++) { i + j > 9 ? cout<<" " : cout<<"*"; } cout<<"t"; for (int j=0; j<10; j++) { i > j ? cout<<" " : cout<<"*"; } cout<<"t"; for (int j=0; j<10; j++) { i + j < 9 ? cout<<" " : cout<<"*"; } cout<<endl; } return 0; } 运行效果: ![]() (编辑:开发网_郴州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |



浙公网安备 33038102330466号