2013蓝桥杯全国软件大赛C++模拟试题-画表格-解答 .

标题:画表格

在中文Windows环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来。
比如: 
 ┌─┬─┐
 ├─┼─┤
 └─┴─┘ 
其实,它是由如下的符号拼接的:
 左上 = ┌
 上 =  ┬
 右上 =  ┐
 左 =  ├
 中心 =  ┼
 右 =  ┤
 左下=  └
 下 =  ┴
 右下 =  ┘


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

例如用户输入:
3 2
则程序输出:
┌─┬─┐
├─┼─┤
├─┼─┤
└─┴─┘

用户输入:
2 3
则程序输出:
┌─┬─┬─┐
├─┼─┼─┤
└─┴─┴─┘

#include <iostream>
using namespace std;
int main()
{
   cout<<"要绘制表格,需要您输入对应的行数和列数"<<endl;
   int low; //记录要画的表格的行数
   cin>>low;
   int lie; //记录要画的表格的列数
   cin>>lie;
   int i,j,k;
   int zhong;  //来记录除了表格两边中间需要输出的符号个数,与列数相关
   for(i=1;i<=low+1;i++)
	   {
		  if(i==1)  //表格第一行对应符号的输出
			  { cout<<"┌";
				zhong=lie-1;
				for(k=1;k<=zhong;k++)
				{
				  cout<<"┬" ;	   
				}  
				cout<<"┐";
				cout<<endl;
			  }
		  else if(i==low+1) //表格最后一行对应符号的输出
		  {
			{  cout<<"└";
			   zhong=lie-1;
				for(k=1;k<=zhong;k++)
				{
				  cout<<"┴" ;	   
				}  
			  cout<<"┘";
			  cout<<endl;
		   }	  
		 }
		 else    //表格中间行对应符号的输出
		 {
			  cout<<"├";
			  zhong=lie-1;
				for(k=1;k<=zhong;k++)
				{
				  cout<<"┼" ;	   
				}  
			cout<<"┤";
			cout<<endl;
		   }	  
		   
		 }


return 0;

}


 

 

 

此题先自己在纸上画出每一行应该输出的符号,然后找出行列以及符号的对应关系。

 

上面的例子忘了输出垂直 = │ 水平 = ─ ,以下实例加以修改

/*
标题:画表格

在中文Windows环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来。
比如:		
	┌──┬──┐
	│  │  │
	├──┼──┤
	│  │  │
	└──┴──┘		
其实,它是由如下的符号拼接的:
	左上 = ┌
	上 =  ┬
	右上 =  ┐
	左 =  ├
	中心 =  ┼
	右 =  ┤
	左下=  └
	下 =  ┴
	右下 =  ┘
	垂直 =  │
	水平 =  ─
本题目要求编写一个程序,根据用户输入的行、列数画出相应的表格来。

例如用户输入:
3 2
则程序输出:
┌──┬──┐
│  │  │
├──┼──┤
│  │  │
├──┼──┤
│  │  │
└──┴──┘

用户输入:
2 3
则程序输出:
┌──┬──┬──┐
│  │  │  │
├──┼──┼──┤
│  │  │  │
└──┴──┴──┘


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

代码中允许使用STL类库,但不能使用MFC或ATL等非ANSI c++标准的类库。例如,不能使用CString类型(属于MFC类库)。

*/

#include <iostream>
using namespace std;
int main()
{
   cout<<"要绘制表格,需要您输入对应的行数和列数"<<endl;
   int low; //记录要画的表格的行数
   cin>>low;
   int lie; //记录要画的表格的列数
   cin>>lie;
   int i,j,k;
   int zhong;  //来记录除了表格两边中间需要输出的符号个数,与列数相关
   for(i=1;i<=low+1;i++)
	   {
		  if(i==1)  //表格第一行对应符号的输出
			  { cout<<"┌─";
				zhong=lie-1;
				for(k=1;k<=zhong;k++)
				{
				  cout<<"┬─" ;	   
				}  
				cout<<"┐";
				cout<<endl;
                cout<<"│  ";
				zhong=lie-1;
				for(k=1;k<=zhong;k++)
				{
				  cout<<"│  " ;	   
				}  
				cout<<"│";
				cout<<endl;
			  }
		  else if(i==low+1) //表格最后一行对应符号的输出
		  {
			{  cout<<"└─";
			   zhong=lie-1;
				for(k=1;k<=zhong;k++)
				{
				  cout<<"┴─" ;	   
				}  
			  cout<<"┘";
			  cout<<endl;
		   }	  
		 }
		 else    //表格中间行对应符号的输出
		 {
			  cout<<"├─";
			  zhong=lie-1;
			  for(k=1;k<=zhong;k++)
				{
				  cout<<"┼─" ;	   
				} 
			 cout<<"┤";
			 cout<<endl;
			 cout<<"│  ";
			 zhong=lie-1;
			 for(k=1;k<=zhong;k++)
				{
				  cout<<"│  " ;	   
				}  
			cout<<"│";
			cout<<endl;
		   }  
		   
		 }

return 0;

}


 

 

 


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值