#include<iostream>
#include<string>
using namespace std;
char** display(char c,int row,int column){
//分配二维数组
char **p = new char*[row];
for(int i=0;i<row;++i){
p[i] = new char[column];
}
//初始化
for(int j=0;j<row;j++){
for(int k=0;k<column;k++){
p[j][k]=' ';
}
}
int index=0;
//1
if(c=='1'){
for(index=1;index<row/2;index++){
p[index][column-1]='|';
}
for(index=row/2+1;index<row-1;index++){
p[index][column-1]='|';
}
return p;
}
//2
else if(c=='2'){
for(index=1;index<column-1;index++){
p[0][index]='-';
p[row/2][index]='-';
p[row-1][index]='-';
}
for(index=1;index<row/2;index++){
p[index][column-1]='|';
}
for(index=row/2+1;index<row-1;index++){
p[index][0]='|';
}
return p;
}
//3
else if(c=='3'){
for(index=1;index<column-1;index++){
p[0][index]='-';
p[row/2][index]='-';
p[row-1][index]='-';
}
for(index=1;index<row/2;index++){
p[index][column-1]='|';
}
for(index=row/2+1;index<row-1;index++){
p[index][column-1]='|';
}
return p;
}
//4
else if(c=='4'){
for(index=1;index<column-1;index++){
p[row/2][index]='-';
}
for(index=1;index<row/2;index++){
p[index][column-1]='|';
p[index][0]='|';
}
for(index=row/2+1;index<row-1;index++){
p[index][column-1]='|';
}
return p;
}
//5
else if(c=='5'){
for(index=1;index<column-1;index++){
p[0][index]='-';
p[row/2][index]='-';
p[row-1][index]='-';
}
for(index=1;index<row/2;index++){
p[index][0]='|';
}
for(index=row/2+1;index<row-1;index++){
p[index][column-1]='|';
}
return p;
}
//6
else if(c=='6'){
for(index=1;index<column-1;index++){
p[0][index]='-';
p[row/2][index]='-';
p[row-1][index]='-';
}
for(index=1;index<row/2;index++){
p[index][0]='|';
}
for(index=row/2+1;index<row-1;index++){
p[index][0]='|';
p[index][column-1]='|';
}
return p;
}
//7
else if(c=='7'){
for(index=1;index<column-1;index++){
p[0][index]='-';
}
for(index=1;index<row/2;index++){
p[index][column-1]='|';
}
for(index=row/2+1;index<row-1;index++){
p[index][column-1]='|';
}
return p;
}
//8
else if(c=='8'){
for(index=1;index<column-1;index++){
p[0][index]='-';
p[row/2][index]='-';
p[row-1][index]='-';
}
for(index=1;index<row/2;index++){
p[index][0]='|';
p[index][column-1]='|';
}
for(index=row/2+1;index<row-1;index++){
p[index][0]='|';
p[index][column-1]='|';
}
return p;
}
//9
else if(c=='9'){
for(index=1;index<column-1;index++){
p[0][index]='-';
p[row/2][index]='-';
p[row-1][index]='-';
}
for(index=1;index<row/2;index++){
p[index][0]='|';
p[index][column-1]='|';
}
for(index=row/2+1;index<row-1;index++){
p[index][column-1]='|';
}
return p;
}
//0
else if(c=='0'){
for(index=1;index<column-1;index++){
p[0][index]='-';
p[row-1][index]='-';
}
for(index=1;index<row/2;index++){
p[index][0]='|';
p[index][column-1]='|';
}
for(index=row/2+1;index<row-1;index++){
p[index][0]='|';
p[index][column-1]='|';
}
return p;
}
//释放
for(int m=0;m<row;m++){
delete[] p[m];
delete[] p;
}
}
int main(){
// freopen("in.txt","r",stdin);
// freopen("out.txt","w",stdout);
int n;
while(cin>>n && n>0){
int row = 2*n+3; //行
int column = n+2; //列
string num;
cin>>num;
char **p[100];
int index=0;
for(;num[index]!='\0';index++){
// cout<<num[index]<<endl;
//分配二维数组
p[index] = display(num[index],row,column);
}
for(int j=0;j<row;j++){
for(int i=0;i<index;i++){
for(int k=0;k<column;k++){
cout<<p[i][j][k];
}
cout<<" ";
}
cout<<endl;
}
cout<<endl;
}
return 0;
}
1102 LC-Display
最新推荐文章于 2017-08-10 16:02:23 发布