【程序设计】
---------------------------------------------------------题目:请完成函数void print(int,char,int*)将输入的数字以
5*4的点阵形式显示在屏幕上
数字字符的5*4的点阵字库存放在二维数组led中。
存贮位置与存贮值如图1所示,点阵字符"0"存放在数组元素
led[0][0]、led[0][1]、led[0][2]、led[0][3]、led[0][4]中,
其余字符"1"到"9"都依照此方法存储。
样例
请输入1个数字:5
请输入要显示的图案:8
8888
8
8888
8
8888
请按任意键继续. . .
代码如下:
#include <iostream>
using namespace std;
void print(int,char,int*);
int main()
{
int led[10][5]={
{15,9,9,9,15},{1,1,1,1,1},{15,1,15,8,15},
{15,1,15,1,15},{9,9,15,1,1},{15,8,15,1,15},
{15,8,15,9,15},{15,1,1,1,1},{15,9,15,9,15},
{15,9,15,1,15}};
int n;
cout<<"请输入1个数字:";
cin>>n;
char c;
cout<<"请输入要显示的图案:";
cin>>c;
print(n,c,&led[0][0]);
return 0;
}
/**********Program**********/
int trans(int n)
{
int after=0,q=1;
while(1)
{
after+=q*(n%2);
q*=10;
n/=2;
if(n==0)
{
return after;
}
}
}
void print(int n,char c,int *l)
{
int a[5][4],temp;
l+=n*5;
for(int i=0;i<5;i++)
{
temp=trans(l[i]);
for(int j=3;j>=0;j--)
{
a[i][j]=temp%10;
temp/=10;
//cout<<a[i][j];
}
//cout<<endl;
}
int i,j;
for( i=0;i<5;i++)
{
for( j=0;j<4;j++)
{
if(a[i][j]==1)
{
cout<<c;
}
else cout<<" ";
}
cout<<endl;
}
}