Advertisement

csp 201512-3绘图(解析)

阅读量:

思路

这道题目整体而言并不复杂!我们需要应对两种类型的处理步骤:
1.绘制边框
2.在边框内部完成填充

第一种操作
我们采用一个足够大的二维数组来存储字符信息。当 ‘-’ 遇到 ‘+’ 或者 ‘|’ 时,对应位置应当被设置为 ‘+’ ,其余情况则填充为 ‘-’。
同样地,当 ‘|’ 遇到 ‘+’ 或者 ‘-’ 时,对应位置应设定为 ‘+’ ,否则则填充为 ‘|’。

第二种操作
第二种操作与图的广度优先搜索方式存在相似之处!通过简单的递归方式即可完成该过程的实现。

C++代码

复制代码
    #include <bits/stdc++.h>
    
    using namespace std;
    
    char arr[101][101];
    int m,n;
    
    //划线操作
    void line(int l1,int h1,int l2,int h2){
    	if(l1==l2){
    		if(h1<h2){
    			for(int i=h1;i<=h2;i++){
    				if(arr[i][l1]=='-'||arr[i][l1]=='+'){
    					arr[i][l1]='+';
    				}else{
    					arr[i

全部评论 (0)

还没有任何评论哟~