蓝桥杯 画表格

在中文Windows环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来。

比如:

┌─┬─┐

│  │  │

├─┼─┤

│  │  │

└─┴─┘

其实,它是由如下的符号拼接的:

左上 

上 =  

右上 =  

左 =  

中心 =  

右 =  

左下=  

下 =  

右下 =  

垂直 =  

水平 =   

本题目要求编写一个程序,根据用户输入的行、列数画出相应的表格来。

 

例如用户输入:

3 2

则程序输出:

┌─┬─┐

│  │  │

├─┼─┤

│  │  │

├─┼─┤

│  │  │

└─┴─┘

 

用户输入:

2 3

则程序输出:

┌─┬─┬─┐

│  │  │  │

├─┼─┼─┤

│  │  │  │

└─┴─┴─┘

 

 

对于编程题目,要求选手给出的解答完全符合ANSI C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API

 

代码中允许使用STL类库,但不能使用MFCATL等非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;
} 

 

posted @ 2015-04-10 16:37  sky-zz  阅读(205)  评论(0编辑  收藏  举报