题意:跟据字符构造股票动态图。
题解:先构造一个大的二维数组,然后从中间开始构图,最后将坐标轴构造好,这道题输出格式巨坑啊,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;
}