蓝桥杯 打印十字图
来源:互联网 发布:java软件开发图形界面 编辑:程序博客网 时间:2024/06/09 23:58
左边图是输入3时的结果,右边是输入1时的结果,之前曾经想要不要用地递归,查了一下发现没有必要,把图形分成四块,每块又分成三个部分,开个字符数组赋值输出就可以了,很简单
#include<stdio.h>#include<string.h>int main(void){char a[130][130];int n, i, j, m;int mid_of_row;memset( a, '$', 16900 * sizeof(char));//这里是一个投机取巧的办法,直接全都赋值成$,之后找'.'的位置就可以了,这也是我写完了以后才想到的scanf("%d", &n); mid_of_row = 5 + ( n - 1) * 2;//中线位置for( j = 1; j <= 2 * n + 1 ; j++){for( i = mid_of_row ; i > j + 1; i--){if( j % 2 == 0){// 上三角a[j][i] = '.';// 下三角 a[i][j] = '.';}}}// 中间for( i = mid_of_row - 1; i >= 1; i--){if( i == 1){a[i][i] = '.';}else if( i % 2 == 0){a[i][i] = a[i-1][i] = a[i][i-1] = '.';}} for( i = 1; i <= mid_of_row; i++){//左上for( j = 1; j <= mid_of_row; j++){printf("%c", a[i][j]);}//右上for( j = mid_of_row - 1; j >= 1; j--){printf("%c", a[i][j]);}printf("\n");}for( i = mid_of_row - 1; i >= 1; i--){// 左下 for( j = 1; j <= mid_of_row; j++){printf("%c", a[i][j]);}// 右下for( j = mid_of_row - 1; j >= 1; j--){printf("%c", a[i][j]);}printf("\n");}return 0;}
这种字符形状输出的问题吧,我见过的通常不难,就是麻烦了点,打出来以后特别有成就感
===================================UPDATE===============================
貌似数组初始化成'.' 然后用这种方法赋值可能更简单
0 0
- 蓝桥杯:打印十字图
- 蓝桥杯:打印十字图
- 蓝桥杯:打印十字图
- 蓝桥杯 打印十字图
- 蓝桥杯打印十字图
- 蓝桥杯 打印十字图
- 蓝桥杯:打印十字图
- 蓝桥杯 打印十字图
- 蓝桥杯-打印十字图
- 蓝桥杯 十字图打印
- 蓝桥杯 打印十字图
- 蓝桥杯 打印十字图
- 蓝桥杯 打印十字图
- 蓝桥杯 打印十字图
- 【蓝桥杯】【打印十字图】
- 蓝桥杯 打印十字图(模拟)
- 蓝桥杯历届-打印十字图
- 蓝桥杯 JAVA 打印十字图
- 在Windows平台上使用Git和pathogen管理gVim插件
- Java网络编程从入门到精通(27):关闭服务端连接
- iOS 5.1之后跳转到设置页
- 机器学习——深度学习(Deep Learning)
- "自适应网页设计"到底是怎么做到的?
- 蓝桥杯 打印十字图
- 工作中遇到的问题:百万条数据的查询、删除、修改效率提高的一些思考,解决方案(一)
- 兼容谷歌和其他浏览器的弹出窗口
- 二维数组的初始化
- MFC调用Windows API的方法
- Build Spark1.3.1 with CDH HADOOP
- Jquery等待ajax执行完毕继续执行(断点调试正常,运行异常)
- IOS & Android Icon 多规格图标在线自动生成
- 婚内夫妻间借款行为是否有效?婚内借贷行为如何处理?