数字显示
程序员文章站
2022-04-07 14:47:51
...
描述
用点阵的形式在字符界面上显示数字每个数字占5列7行,数字和数字之间用2个空格隔开
输入
输入的第一行含一个正整数k,表示测试例的个数,后面紧接着k行,每行对应一个测试例,包含一个正整数x(0<=x<=9999)。
输出
每个测试例,先输出x和冒号(英文字符,半角),换行后输出x的点阵显示形式,每位数字之间用2个空格隔开。如果行末有空格,请保留。
代码
#include<stdio.h>
#include<math.h>
void proc()
{
char a[7][50]={"***** ************ **************************",//一个二维数组存下0-9,中间无空格
"* * * * ** ** * ** ** *",
"* * * * ** ** * ** ** *",
"* * ************************** ***********",
"* * ** * * ** * ** * *",
"* * ** * * ** * ** * *",
"***** *********** *********** ***********"
};
int b,i,j,n=0,c,x;
scanf("%d",&b);
printf("%d:\n",b);
do
{
n++;
}
while(b/(int)(pow(10,n)));
char d[7][(n-1)*7+5];
for(i=0;i<7;i++)
{
for(j=0;j<n;j++)//判断第几个数
{
c=(int)(b/pow(10,n-j-1))%10;
for(x=0;x<5;x++)
{
d[i][j*7+x]=a[i][c*5+x];
}
if((j*7+x+1)<((n-1)*7+5))//if(x+1<(n-1)*7+5)
{
d[i][j*7+x]=' ';
d[i][j*7+x+1]=' ';
}
}
}
for(i=0;i<7;i++)
{
for(j=0;j<((n-1)*7+5);j++)
{
printf("%c",d[i][j]);
}
printf("\n");
}
}
int main()
{
int i,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
proc();
}
}
上一篇: Spring4Mvc整合Hibernate4框架示例
下一篇: 边界均值