Not That Kind of Graph UVA - 10800 (构图)(巨坑)

传送门

题意:跟据字符构造股票动态图。

题解:先构造一个大的二维数组,然后从中间开始构图,最后将坐标轴构造好,这道题输出格式巨坑啊,WA了4发

#include<iostream>
#include<cstdio>
#include<cstring>

using namespace std;

const int maxn=50;
char s[maxn];
char board[2*maxn+5][maxn+5];

int main()
{
    int t,casen=0;
    scanf("%d",&t);
    while(t--){
        scanf("%s",s);
        memset(board,' ',sizeof(board));
        int maxrow=50,minrow=51,row=50,len;//maxrow,minrow的初始值坑点1
        for(int i=0;s[i];i++){
            if(s[i]=='F'){
                board[++row][i+2]='\\';
                maxrow=max(maxrow,row);
            }else if(s[i]=='C'){
                board[row][i+2]='_';
                minrow=min(minrow,row);//坑点2
            }else if(s[i]=='R'){
                minrow=min(minrow,row);//坑点3
                board[row--][i+2]='/';
            }
            len=i+3;
        }
        board[maxrow+1][0]='+';
        for(int i=1;i<=len;i++){
            board[maxrow+1][i]='-';
        }
        for(int i=minrow;i<=maxrow;i++){
            board[i][0]='|';
        }
        maxrow++;
        for(int i=minrow;i<=maxrow;i++){
            int j=53;
            while(board[i][j]==' '){
                board[i][j]='\0';
                j--;
            }
        }
        printf("Case #%d:\n",++casen);
        for(int i=minrow;i<=maxrow;i++){
            puts(board[i]);
        }
        putchar('\n');
    }
    return 0;
}


猜你喜欢

转载自blog.csdn.net/zhouzi2018/article/details/80765248