用C语言打印图案的几种常见的实现方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
委”协商有关部门 , 充 分 利 用 这 部 分 教 育 资 源 为 加 强 大 学 生 思 想 政 治 教育服务。一是有计划地组织他们进行调查研究, 总结典型经验, 就一 些重大问题提出咨询建 议 , 发 挥 “关 工 委 ”的 咨 询 作 用 , 二 是 组 织 一 些 人参与某些大学生思想政治教育工作, 比如搞专题讲座、座谈, 有条件 的 离 退 人 员 也 可 使 他 们 兼 任 班 主 任 、辅 导 员 的 某 些 工 作 。 随 着 即 将 开 始的事业单位人事制度改革的展开, “关工委”的工作不但大有可为, 而且必将大有作为。
printf("\n"); } } 3.方法三 用二维数组来实现。把图案看成一个 7×7 的二维矩阵结构, 给这 个矩阵赋值, 即相应的位置上赋"*"。在程序中调用了 fabs0 这个库函 数, 它的功能是求绝对值。用循环控制变量 i 控制数组的行下标的取 值, 用循环控制变量 j 控制数组的列下标的取值。这个程序的关键是 在给数组赋值时, 分析列下标的开始值和结束值。 源程序: #include<math.h> main() { static char a[7][7],i,j,k; for(i=0;i<7;i++) { K=fabs(3- i); for(j=k;j<7- k;j++) a[i][j]=′*′; } for(i=0;i<7;i++) { for(j=0;j<7;j++) printf("%c",a[i][j]); printf("\n"); } } 把以上程序稍做改动一下, 可以输出任意大小的菱形图案。在这 里定义一个符号常量, 来控制数组的大小, 这样程序就具有了通用性。 #define N 9 #include<math.h> Main() { Static char a[N][N],i,j,k; for(i=0;i<N;i++) { k=fabs(N/2- i);for(j=k;j<N- k;j++) a[i][j]=′*′; } for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("%c",a[i][j]); printf("\n"); } } 4.方法四
5.要充分利用离退教职工的教育资源库 离退休教职工群体是个 丰富的教育资源库。在离退休教职工中, 有专职政工干部, 有优秀班主 任、辅导员, 有“两课”教师, 有一大批教书育人的先进工作者。他们经 验丰富, 各有所长, 多有恋校情绪。可见, 充分利用这部分教育资源是 篇大文章, 而作这篇大文章却要大手笔。如今, 这篇文章并没怎么去 做。有些离退休人员能为新建民办院校, 二级学院所返聘担负重要工 作, 为什么他们最熟 悉 最 依 恋 的 学 校 却 不 能 利 用 他 们 呢 ? 建 议 “关 工
} gotoxy(1, 1); spl(); printf("\n"); sp2(); } Void spl() { int i,j; for(i=0; i<3; i++) { for(j=3- i;j>0;j- - ) printf(""); printf("\n") } } void sp2() { int i,j; for(i=0; i<3; i++) { for(j=0: j<=i;j++) printf(" "); printf("\n"); } } 用多种方法解决同一问题, 既有助于加深对这个问题的理解; 又 有助于对各种方法的掌握和应用。科
打 印 图 案(1): * *** ***** ******* ***** *** *
图 案(1 ) 这 是 一 个 功 能 并 不 复 杂 的 程 序 。但 如 果 让 你 用 几 种 不 同 的 方 法 来 实现它, 也许还要费一番功夫。笔者经过一段时间的思考, 总结出 4 种 实现方法, 下面分别介绍一下。 1.方法一 直接用 printf 函数来实现。这个图案有 7 行, 调用一次 printf 函数 输出一行, 一共调用这个函数 7 次。这种方法是最直观的, 最简单, 但 是缺少技巧性。 源程序: main() { printf(" *\n"); printf("***\n"); printf("*****\n") prind("*******\n"); pnntf("*****\n"); printf("***\n") printf("*\n"); } 2.方法二 用二重循环结构来实现。先输出前 4 行, 后输出其余的 3 行的输 出; 每一行又分两部分输出, 先输出"*"号前的空格, 再输出"*"号。 注 意输出一行后, 需要换行一次。 源程序: main() { int i,j,k; for(i=0;i<=3;i++) { for(j=0; j<=2- i;j++) printf("*"); printf("\n"); } for(i=0;i<=2;i++) { for(j=0;j<=i;j++) printf("") for(k=0;k<=4- 2*i;k++) printf("*");
241
●
( 上接第 239 页) 3.将大学生的思想道德建设与学生的日常思想教 育相结合 这个结合应包含三个方面的内容: 一是将大学生的思想道 德建设与大学生的成才观教育紧密相联; 从学生一入校就着手抓大学 生的思想教育, 一年级进行系统理论教育, 对二、三年级的学生加强爱 国主义! 理想教育, 对四年级的学生将思想道德建设与择业观教育相 结合; 二是发挥高校党团组织的作用。共青团在做好团员青年的推优 工作的同时, 加强大学生团员的思想建设, 对政治上积极要求进步的 大学生进行引导, 进一步加强学生党员的教育; 三是发挥高校校园文 化在大学生思想道德建设中的重要作用, 通过开展丰富多彩的活动, 使学生在活动中增长知识, 提高素质。
240
科技信息
○综合论坛○
SC IE N C E IN F O R M A T IO N
2007 年 第 10 期
用自定义函数来实现。 先 用 二 重 循 环 结 构 输 出 如 下 图 案(2): **** ***** ****** ******* ****** ***** **** 图 案(2 ) 循环控制变量 i 控制行号, 循环控制变量 j 控制需打印的"*"的个 数。在这个二重循环中需要分析出每一行的行号和这 ' 一行需打印 的 "*" 号 的 个 数 的 关 系 。 再调用两个自定义函数, 用空格去覆盖相对于原图案的多余的" *" 号 。 这 两 个 自 定 义 函 数 分 别 是 在 打 印 下 三 角 和 上 三 角 的 空 格 图 案 。 在程序中调用了 clrscr 库函数和 gotoxy 库函数。函数 clrscr()清除整个 当前字符窗口, 并且把光标定位在左上角(1, 1)处。 在 本 程 序 中 函 数 gotoxy(1, 1)把 字 符 屏 幕 上 的 光 标 移 动 到 左 上 角 (1, 1)处。 要注意的是: 当屏幕用字符模式, 左上角坐标为(1, 1), 而在图形模 式下, 左上角坐标为(0, 0)。 这 个 程 序 只 有 在 显 示 器 才 显 示 图 案(1)的 效 果 , 如 果 用 打 印 机 打 印, 打印出来的就是图案(2)。这是因为显示器不能重叠显示, 而打印机 可以反映输出的过程和结果。 源程序: #include<conio.h> Main() { void spl(); void sp2(); int i,j,k; clrscr(); for(i=0;i<7;i++) { K=4+i; if(k>7)k=10- i; for(j=0;j<k;j++) printf("*"); printf("\n");
总之, 当前大学生思想道德状况主流是好的, 但问题也不容忽视, 其成因也是多方面的, 如能正确地加以分析和引导, 是可以得到较好 的解决的。加强大学生思想道德教育, 帮助大学生确立正确的人生观、 价值观是一项长期复杂而又艰苦细致的工作, 我们只有立足现实, 根 据大学生思想道德状况的现实特点, 从理论与实践的结合上下功夫, 我们德育工作者才能正确引导教育他们, 具体措施才能真正落到实 处, 收到实效。科
4.将大学生的思想道德建设与教育目标的实现相结合 实 施 从 应 试教育向素质教育的转轨为高校更好地开展道德建设提供了良好的 机遇。组织学生积极参与德育过程, 把德育目标、内容的要求内化为学 生自求、自得的过程、引导大学生进行道德实践, 对两难性和感觉性的 价值问题, 让学生在自我选择与体验中感觉到, 接受德育不只是社会 的要求和为了他人, 而且也是满足自身的需要, 从而形成自律的品质。
Sever al Realization Methods Of Using Language C To Pr int The Design Chen- ying Zhang- qingfeng
(Zhoukou Nor mal Univer sity Zhoukou Henan 466000) Abstr act: With experience in the Language C teaching for several years, the authors sum up and introduce four methods for finding the program of printout the design(1). The realization methods are helpful for understanding and grasping the problems. Key wor ds: Language C; program; design; recurrence; function
● 参考文献
[ 1] 武京玉 甄进忠 苗卫红《当前大学生思想道德现 状 及 引 导 》河 南 社 会科学 1998.5. [ 2] 罗元《高校思想道德素质教育的思考》广州大学学报:社科版, 2002.4. [ 3] 刘志明《高校学生工作研究与探索》天津:天津人民出版社,1998. [ 4] 黄 蓉 生 《社 会 主 义 市 场 经 济 条 件 下 高 校 学 生 工 作 理 论 与 实 践 》新 的探索 西南师范大学出版社,1997.
科技信息
○综合论坛○
SC IE N C E IN F O R M A T IO N
2007 年 第 10 期
用 C 语言打印图案的几种实现方法
陈 莹 张青锋 (周口师范学院计科系 河南 周口 466000)
摘要: 经过几年来在 C 语言教学中的实践, 总结并介绍了 4 种打印图案(1)的方法。这 4 种实现方法, 有助于加深对问题的理解和掌握。 关键词: C 语言; 程序; 图案; 循环; 函数
●
参考文献 [ 1] 谭浩强著.Leabharlann Baidu 程序设计(第二版)[ M] .北京: 清华大学出版社.1999. [ 2] 谭浩强著.C 程序设计题解与上机指导(第二版)[ N] .北京: 清华大学 出 版 社.2000. [ 3] 徐士良著.C 语言程序设计教程[ N] .北京: 民邮电出版社.2001. [ 4] 谭浩强张基温唐水炎著.C 语言程序设计教程(第二版)[ N] .北京: 高 等 教 育 出 版 社.1998. [ 5] Herbert Schildt 著.戴健鹏译.C 语言大全(第二 版)[ H] .北 京 : 电 子 工 业 出 版 社.1994.