标题:打印图形

如下的程序会在控制台绘制分形图(就是整体与局部自相似的图形)。

当n=1,2,3的时候,输出如下:

请仔细分析程序,并填写划线部分缺少的代码。

#include <stdio.h>
#include <stdlib.h>void show(char* buf, int w){int i,j;for(i=0; i<w; i++){for(j=0; j<w; j++){printf("%c", buf[i*w+j]==0? ' ' : 'o');}printf("\n");}
}void draw(char* buf, int w, int x, int y, int size){if(size==1){buf[y*w+x] = 1;return;}int n = _________________________ ; //填空draw(buf, w, x, y, n);draw(buf, w, x-n, y ,n);draw(buf, w, x+n, y ,n);draw(buf, w, x, y-n ,n);draw(buf, w, x, y+n ,n);
}int main()
{int N = 3;int t = 1;int i;for(i=0; i<N; i++) t *= 3;char* buf = (char*)malloc(t*t);for(i=0; i<t*t; i++) buf[i] = 0;draw(buf, t, t/2, t/2, t);show(buf, t);free(buf);return 0;
}

代码

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;void show(char* buf, int t)
{int i,j;for(i=0; i<t; i++){for(j=0; j<t; j++){printf("%c", buf[i*t+j]==0? ' ' : 'o');}printf("\n");}
}void draw(char* buf, int t, int x, int y, int size)
{//一开始的时候size=t=27if(size==1){buf[y*t+x] = 1;return;}
//边界条件是size=0,所以int肯定对size做改变
//  int n = _________________________ ; //填空int n=size/3;draw(buf, t, x, y, n);draw(buf, t, x-n, y ,n);draw(buf, t, x+n, y ,n);draw(buf, t, x, y-n ,n);draw(buf, t, x, y+n ,n);
}int main()
{int N = 3;int t = 1;int i;for(i=0; i<N; i++) t *= 3;//t=27char* buf = (char*)malloc(t*t);//申请空间for(i=0; i<t*t; i++) buf[i] = 0;//将一维数组全部初始化为0draw(buf, t, t/2, t/2, t);show(buf, t);free(buf);//释放空间return 0;
}

2018年第九届省赛C/C++A组第5题——打印图形相关推荐

  1. 2018年第九届省赛C/C++A组第4题——第几个幸运数

    标题:第几个幸运数 到x星球旅行的游客都被发给一个整数,作为游客编号. x星的国王有个怪癖,他只喜欢数字3,5和7. 国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品. 我们来看前1 ...

  2. 2018年第九届省赛C/C++A组第3题——乘积尾零

    标题:乘积尾零 如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零? 5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 ...

  3. 2018年第九届省赛C/C++A组第2题——星期一

    标题:星期一 整个20世纪(1901年1月1日至2000年12月31日之间),一共有多少个星期一? (不要告诉我你不知道今天是星期几) 注意:需要提交的只是一个整数,不要填写任何多余的内容或说明文字. ...

  4. 2018年第九届蓝桥杯C语言B组答案第一题:第几天

    标题:第几天 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容. 方法一:直接用笔算,注意2000年为闰年,2 ...

  5. [蓝桥杯]2018年第九届省赛真题C/C++ B组 填空+大题

    第九届蓝桥杯省赛题目 填空A:第几天 填空B:明码 填空C:乘积尾零 填空 D: 测试次数(待学习) 填空 E:快速排序 大题F:递增三元组 大题G: 螺旋折线 大题H:日志统计 大题I-全球变暖 填 ...

  6. 2018年第九届蓝桥杯Java本科B组国赛题解

    第一题 标题:三角形面积 已知三角形三个顶点在直角坐标系下的坐标分别为: (2.3, 2.5) (6.4, 3.1) (5.1, 7.2) 求该三角形的面积. 注意,要提交的是一个小数形式表示的浮点数 ...

  7. 2018年第九届蓝桥杯C/C++ C组国赛 —— 第四题:约瑟夫环

    标题:约瑟夫环 n 个人的编号是 1~n,如果他们依编号按顺时针排成一个圆圈,从编号是1的人开始顺时针报数. (报数是从1报起)当报到 k 的时候,这个人就退出游戏圈.下一个人重新从1开始报数. 求最 ...

  8. 2018年第九届蓝桥杯C/C++ C组国赛 —— 第三题:全排列

    标题:全排列 对于某个串,比如:"1234",求它的所有全排列. 并且要求这些全排列一定要按照字母的升序排列. 对于"1234",应该输出(一共4!=24行): ...

  9. 2018年第九届蓝桥杯C/C++ C组国赛 —— 第二题:最大乘积

    标题:最大乘积 把 1~9 这9个数字分成两组,中间插入乘号, 有的时候,它们的乘积也只包含1~9这9个数字,而且每个数字只出现1次. 比如: 984672 * 351 = 345619872 987 ...

最新文章

  1. mysqldump工具,工作的本质是什么呢?(dump表的时候,是否会产生drop表的语句)
  2. 五边形创意画_绝了,自己做吊灯,创意满满!不仅好看还省钱!
  3. docker 安装redis第三方集群方案 codis
  4. 润乾集算报表呈现输出之表头重复
  5. Android Gradle编译问题
  6. 中文实体命名识别工具使用汇总:Stanza、LAC、Ltp、Hanlp、foolnltk、NLTK、BosonNLP
  7. android贝塞尔曲线多点,Canvas 贝塞尔曲线的多点波动
  8. Linux中eclipse配置Maven,eclipse maven选项怎么配置settings
  9. media query学习笔记
  10. 爬虫:爬取微软必应翻译做成API
  11. gsp计算机管理制度,GSP飞检项目——质量体系文件
  12. origin 页边距紧凑设置
  13. Windows Mobile系统PDA进行GPS导航的入门知识
  14. 读书报告1500字计算机大学篇,大学生读书报告1500.doc
  15. 【Derivation】随机过程及应用(三) - 高斯分布/正态分布的期望和方差
  16. 如何在Tableau Desktop中创建自定义调色板 - 优阅达
  17. 配置管理神器 Viper
  18. 关于学术期刊,你应该知道这些
  19. css和html制作网页
  20. java实现发布订阅

热门文章

  1. (转)如何成为顶级生物信息学家?
  2. codis 部署和测试
  3. 【好程序员笔记分享】——UIView与CALayer详解
  4. (原创).Net将EF运用于Oralce一 准备工作
  5. python shell下载很慢_Python踩坑之旅其一杀不死的Shell子进程
  6. 计算机应用技术滨江计划,杭州高新区(滨江)列出干货满满的“计划表”
  7. android主板接口定义,范例解析:学习Android的IPC主板模式
  8. Java黑皮书课后题第6章:**6.26(回文素数)回文素数是指一个数同时为素数和回文数。编程程序,显示前100个回文素数,每行显示10个数,数字中间用一个空格隔开
  9. android 百度地图 在线建议查询,Android 百度地图 SDK v3_3_0 (五) ---POI搜索和在线建议查询功能...
  10. OpenGL 期末考试作业