重在理解,不可抄袭
警示后人(易错点):1.题中X为大写。2.每两个“数字”之间有“.”分开。
看代码:
#include<bits/stdc++.h>
using namespace std;
int n,a[105];//其实这边a数组可以省略,但我为了不动脑子加上了
bool cnt[10][16]={{1,1,1,1,0,1,1,0,1,1,0,1,1,1,1},{0,0,1,0,0,1,0,0,1,0,0,1,0,0,1},{1,1,1,0,0,1,1,1,1,1,0,0,1,1,1},{1,1,1,0,0,1,1,1,1,0,0,1,1,1,1},{1,0,1,1,0,1,1,1,1,0,0,1,0,0,1},{1,1,1,1,0,0,1,1,1,0,0,1,1,1,1},{1,1,1,1,0,0,1,1,1,1,0,1,1,1,1},{1,1,1,0,0,1,0,0,1,0,0,1,0,0,1},{1,1,1,1,0,1,1,1,1,1,0,1,1,1,1},{1,1,1,1,0,1,1,1,1,0,0,1,1,1,1}};
/*cnt数组就是用来储存数字相对应的显示屏的,
cnt[a][b]储存数字a的编号为b(详见下方)字符(1代表x,0
代表.)
xxx 0,1,2
x.x 3,4,5
x.x编号分别为5,6,7
x.x 8,9,10
xxx 10,11,12
例如cnt[0][0]=1(即x)
1表示亮点,0表示暗点*/
string s;//因为输入第二行没空格
int main()
{
cin>>n>>s;
for(int i=0;i<n;i++)
a[i]=int(s[i]-48);//char转化为int
for(int i=0;i<n;i++)
{
for(int j=0;j<3;j++)
{
if(cnt[a[i]][j]==1)
cout<<"X";//将亮点转化为X
else
cout<<".";、//将暗点转化为.
}
if(i!=n-1)//最后一个数后面不加“.”
cout<<".";
}
cout<<endl;//输入第一行(编号0,1,2),下面类比
for(int i=0;i<n;i++)
{
for(int j=3;j<6;j++)
{
if(cnt[a[i]][j]==1)
cout<<"X";
else
cout<<".";
}
if(i!=n-1)
cout<<".";
}
cout<<endl;
for(int i=0;i<n;i++)
{
for(int j=6;j<9;j++)
{
if(cnt[a[i]][j]==1)
cout<<"X";
else
cout<<".";
}
if(i!=n-1)
cout<<".";
}
cout<<endl;
for(int i=0;i<n;i++)
{
for(int j=9;j<12;j++)
{
if(cnt[a[i]][j]==1)
cout<<"X";
else
cout<<".";
}
if(i!=n-1)
cout<<".";
}
cout<<endl;
for(int i=0;i<n;i++)
{
for(int j=12;j<15;j++)
{
if(cnt[a[i]][j]==1)
cout<<"X";
else
cout<<".";
}
if(i!=n-1)
cout<<".";
}
cout<<endl;
return 0;
}
完整代码:
#include<bits/stdc++.h>
using namespace std;
int n,a[105];
bool cnt[10][16]={{1,1,1,1,0,1,1,0,1,1,0,1,1,1,1},{0,0,1,0,0,1,0,0,1,0,0,1,0,0,1},{1,1,1,0,0,1,1,1,1,1,0,0,1,1,1},{1,1,1,0,0,1,1,1,1,0,0,1,1,1,1},{1,0,1,1,0,1,1,1,1,0,0,1,0,0,1},{1,1,1,1,0,0,1,1,1,0,0,1,1,1,1},{1,1,1,1,0,0,1,1,1,1,0,1,1,1,1},{1,1,1,0,0,1,0,0,1,0,0,1,0,0,1},{1,1,1,1,0,1,1,1,1,1,0,1,1,1,1},{1,1,1,1,0,1,1,1,1,0,0,1,1,1,1}};
string s;
int main()
{
cin>>n>>s;
for(int i=0;i<n;i++)
a[i]=int(s[i]-48);
for(int i=0;i<n;i++)
{
for(int j=0;j<3;j++)
{
if(cnt[a[i]][j]==1)
cout<<"X";
else
cout<<".";
}
if(i!=n-1)
cout<<".";
}
cout<<endl;
for(int i=0;i<n;i++)
{
for(int j=3;j<6;j++)
{
if(cnt[a[i]][j]==1)
cout<<"X";
else
cout<<".";
}
if(i!=n-1)
cout<<".";
}
cout<<endl;
for(int i=0;i<n;i++)
{
for(int j=6;j<9;j++)
{
if(cnt[a[i]][j]==1)
cout<<"X";
else
cout<<".";
}
if(i!=n-1)
cout<<".";
}
cout<<endl;
for(int i=0;i<n;i++)
{
for(int j=9;j<12;j++)
{
if(cnt[a[i]][j]==1)
cout<<"X";
else
cout<<".";
}
if(i!=n-1)
cout<<".";
}
cout<<endl;
for(int i=0;i<n;i++)
{
for(int j=12;j<15;j++)
{
if(cnt[a[i]][j]==1)
cout<<"X";
else
cout<<".";
}
if(i!=n-1)
cout<<".";
}
cout<<endl;
return 0;
}
有任何批评和改进的,欢迎评论区!。