蓝桥杯 画表格
在中文Windows环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来。
比如:
┌─┬─┐
│ │ │
├─┼─┤
│ │ │
└─┴─┘
其实,它是由如下的符号拼接的:
左上 = ┌
上 = ┬
右上 = ┐
左 = ├
中心 = ┼
右 = ┤
左下= └
下 = ┴
右下 = ┘
垂直 = │
水平 = ─
本题目要求编写一个程序,根据用户输入的行、列数画出相应的表格来。
例如用户输入:
3 2
则程序输出:
┌─┬─┐
│ │ │
├─┼─┤
│ │ │
├─┼─┤
│ │ │
└─┴─┘
用户输入:
2 3
则程序输出:
┌─┬─┬─┐
│ │ │ │
├─┼─┼─┤
│ │ │ │
└─┴─┴─┘
对于编程题目,要求选手给出的解答完全符合ANSI C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库,但不能使用MFC或ATL等非ANSI c++标准的类库。例如,不能使用CString类型(属于MFC类库)。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意选择自己使用的编译环境。
主要就是找到所有字符的位置规律。
#include<stdio.h> #include<string.h> void paint(int x,int y){ int i,j; for(i=0;i<=x;i++){ for(j=0;j<=y;j++){ if(i==0 && j==0) printf("┌"); if(i%2==0 && j%2==1 && j!=y) printf("─"); if(i==0 && j%2==0 && j!=y && j!=0) printf("┬"); if(i==0 && j==y) printf("┐\n"); if(i%2==1 && j%2==0 && j!=y) printf("│"); if(i%2==1 && j%2==0 && j==y) printf("│\n"); if(i%2==0 && j==0 && i!=0 && i!=x) printf("├"); if(i%2==0 && j%2==0 && j!=y && i!=x && i!=0 && j!=0) printf(" ┼"); if(i%2==0 && j==y && i!=x && i!=0) printf(" ┤\n"); if(i==x && j==0) printf("└"); if(i==x && j%2==0 && j!=y && j!=0) printf(" ┴"); if(i==x && j==y) printf("┘\n"); if(i%2==1 && j%2==1) printf(" "); } } } int main(){ int x,y; while(scanf("%d%d",&x,&y)==2){ paint(2*x,2*y); } return 0; }