LC-Display

来源:互联网 发布:直播网站 源码 编辑:程序博客网 时间:2024/03/29 23:57
//此题目是考察基本的输出指定图形的知识//我将该数字的输出分为了五个部分,每个部分都有规律可循// 出错1:if(!=0) cout<<" ";却写成了// for(int j=0;j<(s+2+1)*i;++j),没有考虑到光标已经变化了,认为光标总在行首。// 出错2:Presentation Error,两个数字之间要输出一个空行。#include<iostream>#include<string>using namespace std;int a[12];int s;string n;void print(){//第一行for(int i=0;i<n.length();++i){if(i!=0)cout<<" ";if(a[i]==1||a[i]==4){for(int k=0;k<s+2;k++)cout<<" ";}else{cout<<" ";for(int k=0;k<s;k++)cout<<"-";cout<<" ";}}cout<<endl;//第二部分for(int m=0;m<s;++m){for(int i=0;i<n.length();++i){if(i!=0)    cout<<" ";if(a[i]==1||a[i]==2||a[i]==3||a[i]==7){for(int k=0;k<s+1;++k){cout<<" ";}cout<<"|";}else if(a[i]==4||a[i]==8||a[i]==9||a[i]==0){cout<<"|";for(int k=0;k<s;++k)cout<<" ";cout<<"|";}else if(a[i]==5||a[i]==6){cout<<"|";for(int k=0;k<s+1;++k)cout<<" ";}}cout<<endl;}//第三部分for(int i=0;i<n.length();++i){if(i!=0)    cout<<" ";if(a[i]==1||a[i]==7||a[i]==0){for(int k=0;k<s+2;++k)cout<<" ";}else if(a[i]==2||a[i]==3||a[i]==4||a[i]==5||a[i]==6||a[i]==8||a[i]==9){cout<<" ";for(int k=0;k<s;++k)cout<<"-";cout<<" ";}}cout<<endl;//第四部分for(int m=0;m<s;++m){for(int i=0;i<n.length();++i){if(i!=0)    cout<<" ";if(a[i]==2){cout<<"|";for(int k=0;k<s+1;k++)cout<<" ";}else if(a[i]==1||a[i]==3||a[i]==4||a[i]==5||a[i]==7||a[i]==9){for(int k=0;k<s+1;++k)cout<<" ";cout<<"|";}else{cout<<"|";for(int k=0;k<s;++k)cout<<" ";cout<<"|";}}cout<<endl;}//第五部分for(int i=0;i<n.length();++i){if(i!=0)   cout<<" ";if(a[i]==1||a[i]==4||a[i]==7){for(int k=0;k<s+2;++k)cout<<" ";}else{cout<<" ";for(int k=0;k<s;++k)cout<<"-";cout<<" ";}}cout<<endl;}int main(){while(cin>>s>>n&&s){int len=0;for(int i=0;i<n.length();++i){a[len++]=n[i]-'0';}print();cout<<endl;}return 0;}