蓝桥杯 制作表格 循环条件判断

来源:互联网 发布:广电机顶盒破解网络 编辑:程序博客网 时间:2024/05/29 13:05
 
在中文Windows环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来。
比如:        
  
其实,它是由如下的符号拼接的:
    左上 = ┌
    上 =  ┬
    右上 =  ┐
    左 =  ├
    中心 =  ┼
    右 =  ┤
    左下=  └
    下 =  ┴
    右下 =  ┘
    垂直 =  │
    水平 =   ─
本题目要求编写一个程序,根据用户输入的行、列数画出相应的表格来。
 
例如用户输入:
3 2
则程序输出:
 
 
 
用户输入:
2 3
则程序输出:



这道题目和之前的一道为一组数据绘制表格的题目很相似,甚至解法也差不多,而且因为没有数据,处理起来更加简单。


和那道题目一样,在输出的时候都要算一个真实输出的行数和列数,也就是通过r=2×r+1和c=2×c+1来获取,得到了真实的行号列号之后,就可以直接输出了,因为有些行和列比较特殊需要单独处理,纵观整体的话,其实就是一个双重循环。


#include<iostream>using namespace std;void draw(int r,int c){        int i,j;        r=2*r+1;//实际输出的行数        c=2*c+1;//实际输出的列数         for(i=1;i<=r;i++)        {                for(j=1;j<=c;j++)                {                        if(i==1)//第一行单独考虑                        {                                if(j==1)//第一行第一个                                        cout<<"┌";                                else if(j==c)//第一行最后一个                                        cout<<"┐";                                else if(j%2==1)//第奇数个                                        cout<<"┬";                                else if(j%2==0)//第偶数个                                        cout<<"─";                        }                        else if(i==r)//最后一行单独考虑                        {                                 if(j==1)                                        cout<<"└";                                else if(j==c)                                        cout<<"┘";                                else if(j%2==1)                                        cout<<"┴";                                else if(j%2==0)                                        cout<<"─";                        }                       else if(i%2==1)//第奇数行                       {                               if(j==1)                                cout<<"├";                               else if(j==c)                                cout<<"┤";                               else if(j%2==1)                                cout<<"┼";                               else if(j%2==0)                                cout<<"─";                       }                       else if(i%2==0)//第偶数行                       {                               if(j%2==1)                                cout<<"│";                               else                                cout<<" ";                       }                }                cout<<endl;        }}int main(){        int r,c;        while(cin>>r>>c)        {                draw(r,c);                cout<<endl;        }        return 0;}


0 0
原创粉丝点击