蓝桥杯 历届试题 打印十字-----------------------C语言——菜鸟级
2018-03-31 10:47
393 查看
/*问题描述
小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:
...........................$.$....…….…….....$.$.$.$...
..…......…..
...$.$.$.$..........……...
...............……...
...$.$.$.$.....……...……..$.$.$.$...
......…….......
$.$.$.$..........................
对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。
输入格式
一个正整数 n (n<30) 表示要求打印图形的层数。
输出格式
对应包围层数的该标志。
样例输入1
1
样例输出1
..................$..$....……
......……
$.$.$.$..................
样例输入2
3
样例输出2
...........................$.$....…….…….....$.$.$.$...
..…......…..
...$.$.$.$..........……...
...............……...
...$.$.$.$.....……...……..$.$.$.$...
......…….......
$.$.$.$..........................
提示
请仔细观察样例,尤其要注意句点的数量和输出位置。
思路:通过 层次覆盖法;一层一层的叠加;从最外层(底层)开始;为达到十字效果,通过 两个行 列相反的矩阵覆盖叠加而成;
做完一个外十字 做下一个十字时 注意缩进 本题除 最外层不满足十字;其他各层’.’与’$’区域均满足十字;
*/
小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:
...........................$.$....…….…….....$.$.$.$...
..…......…..
...$.$.$.$..........……...
...............……...
...$.$.$.$.....……...……..$.$.$.$...
......…….......
$.$.$.$..........................
对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。
输入格式
一个正整数 n (n<30) 表示要求打印图形的层数。
输出格式
对应包围层数的该标志。
样例输入1
1
样例输出1
..................$..$....……
......……
$.$.$.$..................
样例输入2
3
样例输出2
...........................$.$....…….…….....$.$.$.$...
..…......…..
...$.$.$.$..........……...
...............……...
...$.$.$.$.....……...……..$.$.$.$...
......…….......
$.$.$.$..........................
提示
请仔细观察样例,尤其要注意句点的数量和输出位置。
思路:通过 层次覆盖法;一层一层的叠加;从最外层(底层)开始;为达到十字效果,通过 两个行 列相反的矩阵覆盖叠加而成;
做完一个外十字 做下一个十字时 注意缩进 本题除 最外层不满足十字;其他各层’.’与’$’区域均满足十字;
*/
#include<stdio.h> void f(int n) { int i,j,t,k; t=n+1; n=n*4+5;//根据规律算出输出矩阵实际 行 列大小 char a[130][130]; for(i=1;i<=n;i++)//最外层 for(j=1;j<=n;j++) a[i][j]='.'; for(k=1;k<=t;k++)//十字层数 { for(i=1+2*k;i<=n-2*k;i++)//'$'区域十字合成 for(j=1+2*k-2;j<=n-(2*k-2);j++) { a[i][j]='$'; a[j][i]='$'; } for(i=1+2*k+1;i<=n-(2*k+1);i++)//'.'区域十字合成 for(j=1+2*k-1;j<=n-(2*k-1);j++) { a[i][j]='.'; a[j][i]='.'; } } for(i=1;i<=n;i++) { for(j=1;j<=n;j++) printf("%c",a[i][j]); printf("\n"); } } int main() {int n; scanf("%d",&n); f(n); return 0; }
相关文章推荐
- 蓝桥杯历届试题-打印十字图
- 蓝桥杯 历届试题 打印十字图
- 蓝桥杯 历届试题 打印十字图(打印)
- 蓝桥杯 历届试题 打印十字图(模拟水题,图形输出)
- 蓝桥杯 历届试题 打印十字图
- 蓝桥杯历届试题 打印十字图
- 蓝桥杯-历届试题-打印十字图
- 打印十字图-蓝桥杯历届试题
- 蓝桥杯 历届试题 打印十字图
- 历届试题 打印十字图 (蓝桥杯)
- 简单搜索 打印十字图 蓝桥杯历届试题
- 【蓝桥杯】历届试题 打印十字图
- 蓝桥杯 历届试题 打印十字图 java详解
- 蓝桥杯-历届试题-打印十字图
- 蓝桥杯之 历届试题 打印十字图
- 历届试题 打印十字图
- 历届试题 打印十字图
- 蓝桥杯 - 历届试题 小朋友排队 C语言实现
- 蓝桥杯 - 历届试题 兰顿蚂蚁 C语言实现
- 蓝桥杯 历届试题 连续区间数----------------------C语言——菜鸟级