定义了一个二维数组,用若干个状态变量表示“8”的各条边,变量为1则显示,变量为0则不显示,根据命令行从上到下逐行显示的特点,分为五步显示,每次显示一行中所有位数字的一部分。
# include<iostream>
using namespace std;
void print(int a, int b)//用来显示的函数,a为行数,b为数字
{
int m[5][3] = { 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 };
//定义一个二维数组用来表示从0-9这十个数
if (b == 1) m[0][1] = 0, m[1][0] = 0, m[3][0] = 0, m[4][1] = 0, m[2][1] = 0;
if (b == 2) m[1][0] = 0, m[3][2] = 0;
if (b == 3) m[1][0] = 0, m[3][0] = 0;
if (b == 4) m[0][1] = 0, m[3][0] = 0, m[4][1] = 0;
if (b == 5) m[1][2] = 0, m[3][0] = 0;
if (b == 6) m[1][2] = 0;
if (b == 7) m[1][0] = 0, m[3][0] = 0, m[4][1] = 0, m[2][1] = 0;
if (b == 0) m[2][1] = 0;
if (b == 9) m[3][0] = 0;
char str[5][3] = { ' ','-',' ','|',' ','|',' ','-',' ','|',' ','|',' ','-',' ' };
//定义了一个二维数组用来存储8
for (int i = 0; i < 3; i++)//有三行
{
if (m[a][i] == 1)
{
if (i != 1) cout << str[a][i];
if (i == 1) cout << str[a][i] << str[a][i];
}
if (m[a][i] == 0)
//如果为1就显示,为0就不显示
{
if (i != 1) cout << " ";
if (i == 1) cout << " ";
}
}
}
int main()
{
//输入一个数
int number;
cin >> number;
for (int i = 0; i < 5; i++)
{
print(i, number);
cout << endl;
}
}