编写程序,输入一个整数,使用字符模拟七段显示器来输出该数。
计算器、电子手表和其它电子设备经常依靠七段显示器进行数值的输出。为了组成数字,这类设备需要“打开”7个显示段中的某些部分,同时“关闭”其它部分:
需要设置一个数组来保存显示0到9数字时需要“打开”和“关闭”的显示段。
#include<string.h> //第L题
#define MAX 10
const char s[10][7] = { {1,1,1,1,1,1,0},
{0,1,1,0,0,0,0},
{1,1,0,1,1,0,1},
{1,1,1,1,0,0,1},
{0,1,1,0,0,1,1},
{1,0,1,1,0,1,1},
{1,0,1,1,1,1,1},
{1,1,1,0,0,0,0},
{1,1,1,1,1,1,1},
{1,1,1,1,0,1,1}, };
char r[3][MAX * 4];
void clear(void) //给空格
{
int i, j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < MAX * 4; j++)
{
r[i][j] = ' ';
}
}
}
void process_d(int d, int pos)
{
int p = pos * 4;
if (s[d][0])
r[0][p + 1] = '_';
if (s[d][5])
r[1][p] = '|';
if (s[d][6])
r[1][p + 1] = '_';
if (s[d][1])
r[1][p + 2] = '|';
if (s[d][4])
r[2][p] = '|';
if (s[d][3])
r[2][p + 1] = '_';
if (s[d][2])
r[2][p + 2] = '|';
}
void print(int m, int n)
{
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n * 4; j++)
{
putchar(r[i][j]);
}
putchar('\n');
}
}
int main()
{
char d[MAX];
while (scanf("%s", d) != EOF)
{
int len = strlen(d), i;
clear();
for (i = 0; i < len; i++)
{
process_d(d[i] - '0', i);
}
print(3, len);
}
return 0;
}