C语言实现:
#include<stdio.h>
#define MAX 20
const int key[10][7]={ {1,1,1,1,1,1,0},//0
{0,1,1,0,0,0,0},//1
{1,1,0,1,1,0,1},//2
{1,1,1,1,0,0,1},//3
{0,1,1,0,0,1,1},//4
{1,0,1,1,0,1,1},//5
{1,0,1,1,1,1,1},//6
{1,1,1,0,0,0,0},//7
{1,1,1,1,1,1,1},//8
{1,1,1,1,0,1,1},//9
};
char display[3][MAX*4]={' '};
void changenumber(int num,int pos);
void print();
int main()
{
char num[MAX];
while(scanf("%s",num)!=EOF)
{
for(int i=0;num[i]!='\0';i++)
changenumber(num[i]-'0',i);
print();//所有七段显示数字放在二维数组同行,*4列处整体输出
}
return 0;
}
void changenumber(int num,int pos)
{
int p=pos*4;
if(key[num][0]!=0)
display[0][p+1]='_';
if(key[num][1]!=0)
display[1][p+2]='|';
if(key[num][2]!=0)
display[2][p+2]='|';
if(key[num][3]!=0)
display[2][p+1]='_';
if(key[num][4]!=0)
display[2][p+0]='|';
if(key[num][5]!=0)
display[1][p+0]='|';
if(key[num][6]!=0)
display[1][p+1]='_';
}
void print(void)
{
for(int i=0;i<3;i++)
{
for(int j=0;j<MAX*4;j++)
{
putchar(display[i][j]);
}
putchar('\n');
}
}
运行结果:
(题目提示:)