循环·5·打印多层金字塔
来源:互联网 发布:淘宝收获日面具 编辑:程序博客网 时间:2024/05/16 17:42
吉首大学2017程序设计-实验1-5
100 分
- 编程题共 7 小题,共计 100 分
剩余时间: 1399:12:41
7-3 打印多层金字塔 (15 分)
本题目要求读入2个整数n和m,m表示小金字塔的行数,n代表大金字塔的层数。然后输出多层金字塔。
输入格式:
在一行中层数n和 小金字塔的行数m。
输出格式:
对每一组输入,显示对应的图案
输入样例:
在这里给出一组输入。例如:
2 3
输出样例:
在这里给出相应的输出。例如:
* *** ***** * * *** ******** *****——————————————————————————————————————#include<stdio.h>int main(){/*思路是:从最上面开始垒金字塔*/ int M,m,i,j,k,l,s,x,y,a,b=1;/*最终的大金字塔是若干个小金字塔叠加的,每一行小金字塔视为一大层,即为M;小金字塔的层数则为m*/ scanf("%d%d",&M,&m);/*k是递减的空格数,因为大金字塔左边就是一斜到底*//*j是镂空的空格,递增,找一个样例可以观察得到*/ for(l=M;l>0;l--,b++) { /*这个控制大金字塔的层数,有几层,运行几次*/ for(i=0,s=m-1;i<m;i++,s--){/*这个控制小金字塔的层数,有几层,运行几次*/ y=0;/*y每次要重置为零*/ for(k=l*m-i-1;k>0;k--)/*控制金字塔左边的空格*/ printf(" "); if(b>1){/*b是1的时候,大金字塔就是小金字塔,但当大层数大于1时,下面的小金字塔中间有空格,所以这里分两种情况*/ for(j=0;j<(2*i+1)*b;j++){/*用来控制下层小金字塔中的空格*/ printf("*");/*从左边垒小金字塔*/ y++; if(y==2*i+1&&j!=(2*i+1)*b-1){/*通过黑框框测试,一步步把这一大层的小金字塔垒完*/ y=0;/*y每次要重置为零*/ for(x=s*2+1;x>0;x--)/*垒完小金字塔垒空格,再循环回去再垒小金字塔*/ printf(" ");}}}/*垒完这一大层小金字塔再垒下一层的小金字塔*/ else{ for(j=0;j<2*i+1;j++)/*这里就是讲的只有大金塔内部没有空格的情况*/ printf("*");} printf("\n");}}return 0;}
阅读全文
0 0
- 循环·5·打印多层金字塔
- 5-2 打印多层金字塔(明天)
- cccc --5-2 打印多层金字塔
- 打印多层金字塔
- for循环打印金字塔
- for循环打印金字塔
- 打印多层金字塔 (15 分)
- 打印多层金字塔 (15 分)
- java打印等腰三角形,金字塔,for循环嵌套
- 打印金字塔
- 金字塔打印
- 打印金字塔
- 打印*金字塔
- 打印: 金字塔
- 打印金字塔
- 打印金字塔
- 打印金字塔
- 金字塔循环
- centos7.3下用户和组的管理
- 买到首批iPhone X的用户先别高兴,刘海体验不佳
- 二叉树的实现与基本操作(C指针实现)
- finalize()
- linux结束jobs的方法
- 循环·5·打印多层金字塔
- Pixhawk进阶开发
- 机器学习算法之KNN
- 【bzoj1853】[Scoi2010]幸运数字
- 使用值栈向JSP中传递数据
- Scrapy学习笔记(5)--Selectors 选择器
- eclipse所有版本下载
- Visual Studio 2015 操作文件错误:C4996
- HDU-1000(A + B Problem)