Sweety

Practice makes perfect

导航

蓝桥杯---制作表格

Posted on 2015-04-07 18:55  蓝空  阅读(208)  评论(0编辑  收藏  举报

这道题好像还有点意思,最起码能做出个东西来看看,但是实现起来很简单。。。


在中文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;
}