这道题好像还有点意思,最起码能做出个东西来看看,但是实现起来很简单。。。
在中文Windows环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来。
比如:
┌─┬─┐
│ │ │
├─┼─┤
│ │ │
└─┴─┘
其实,它是由如下的符号拼接的:
左上 = ┌
上 = ┬
右上 = ┐
左 = ├
中心 = ┼
右 = ┤
左下= └
下 = ┴
右下 = ┘
垂直 = │
水平 = ─
本题目要求编写一个程序,根据用户输入的行、列数画出相应的表格来。
例如用户输入:
3 2
则程序输出:
┌─┬─┐
│ │ │
├─┼─┤
│ │ │
├─┼─┤
│ │ │
└─┴─┘
用户输入:
2 3
则程序输出:
┌─┬─┬─┐
│ │ │ │
├─┼─┼─┤
│ │ │ │
└─┴─┴─┘
#include <iostream> #include <stdio.h> #include <memory.h> #include <cmath> using namespace std; #define EN cout<<endl; #define SP cout<<' '; int main (){ int m,n; cin>>m>>n; for(int i=0;i<m*2+1;i++){ if(i==0){ for(int j=0;j<2*n+1;j++){ if(j==0) { printf("┌"); continue; } if(j==2*n){ printf("┐"); continue; } else if(j%2) printf("─"); else printf("┬"); } cout<<endl; continue; } if(i==2*m){ for(int j=0;j<2*n+1;j++){ if(j==0) { printf("└"); continue; } if(j==2*n){ printf("┘"); continue; } else if(j%2) printf("─"); else printf("┴"); } cout<<endl; continue; } else if(i%2==0){ for(int j=0;j<2*n+1;j++){ if(j==0) { printf("├"); continue; } if(j==2*n) {printf("┤"); continue; } else if(j%2==0) printf("┼"); else printf("─"); } cout<<endl; } else{ for(int j=0;j<2*n+1;j++){ if(j%2==0) printf("│"); else printf(" "); } cout<<endl; } } return 0; }