打印一个菱形
2015-10-27 00:32
507 查看
测试程序
/// @file 2015_1026\exam_1_1\main.c /// @brief 画菱形 /** exam_1_1: 编程输出如下菱形: * * * * * * * * * * * * */ #include <stdlib.h> #include <stdio.h> void print_sapce(int iCntSpace); int main(int argc, char** argv) { const int iRow = 19; ///< N行的菱形 const int iColCenterPosX = 40; ///< 菱形的中轴线X位置 const int iColPosOffsetX = 4; ///< 每个菱形控制点和上一行的菱形控制点在X方向的偏移 const int iRowInflectionPoint = 9; ///< 菱形拐点(控制点方向变化的那行) int iIndex = 0; int iPosLeft = iColCenterPosX; ///< 左边的控制点位置 int iPosRight = iColCenterPosX; ///< 右边的控制点位置 int iTemp = 0; printf("\n"); ///< 空一行再打印 for (iIndex = 0; iIndex < iRow; iIndex++) { /// 打印菱形左边的控制点 print_sapce(iPosLeft - 1); printf("*"); /// 打印菱形右边的控制点 if (iPosLeft != iPosRight) { print_sapce(iPosRight - iPosLeft - 1); printf("*"); } /// 如果没过菱形拐点, 位置向两边变化 /// 如果过了菱形拐点, 位置向中间变化 iTemp = (iIndex >= iRowInflectionPoint) ? iColPosOffsetX : -iColPosOffsetX; iPosLeft += iTemp; iPosRight -= iTemp; /// 准备打印下一行的菱形控制点 printf("\n"); } getchar(); return 0; } void print_sapce(int iCntSpace) { int iIndex = 0; for (iIndex = 0; iIndex < iCntSpace; iIndex++) { printf(" "); } }
运行效果
相关文章推荐
- WCF 入门 (16)
- 串行 加载机制
- C++格式化输出,C++输出格式控制
- 项目冲刺-第一天
- 使用Postman进行outh2认证
- iphone SprintBoard部分私有API总结(不支持iOS8)
- Web性能优化-合并js与css,减少请求
- 关于linux下mysql 5.7.x数据库的yum的安装方法
- Tomcat的启动到底需要JDK还是JRE呢?答案是:只要有其中一个就可以
- HDU - 4763 Theme Section(拓展kmp)
- Android LruCache类分析
- php中opcache的使用详解
- C 判断socket 是否已经断开
- 深入理解Java参数传递
- Apache安装+虚拟主机
- 10003---使用jQuery实现Ajax
- 常见问题汇总二
- 图片降噪
- LeetCode:Rotate Array
- switch跳转表分析