poj 1102
来源:互联网 发布:西游记后传知乎 编辑:程序博客网 时间:2024/06/05 19:39
这道题主要是把数字转化位图,每位数的转换方法的组成及标号为:
0
--
1| |2
4| |5
_
6 //中间那横为3
先把整个输出表初始化,然后再改变有内容的地方的值。注意关键点的位置,其他就根据格式来定。
#include<stdio.h>
int con[10][7]={1,1,1,0,1,1,1, 0,0,1,0,0,1,0, 1,0,1,1,1,0,1, 1,0,1,1,0,1,1, 0,1,1,1,0,1,0, 1,1,0,1,0,1,1, 1,1,0,1,1,1,1, 1,0,1,0,0,1,0, 1,1,1,1,1,1,1, 1,1,1,1,0,1,1};int main()
{
bool output_f=0;
int s,i,j,k,row,col;
int num[20],num_i;//num_i为位数
char ch1,ch2;
char map[1000][1000];
while(scanf("%d%c%c",&s,&ch1,&ch2)&&s!=0)
{
num_i=0;
num[num_i++]=ch2-'0';
while(scanf("%c",&ch2)&&ch2!='\n')
{
num[num_i++]=ch2-'0';
}
for(i=0;i<2*s+3;i++)//初始化
for(j=0;j<(s+3)*num_i-1;j++)
map[i][j]=' ';
int x=0,y=0;
for(i=0;i<num_i;i++)//num_i位数
{
x=0,y=i*(s+3);//每一横一竖都有一个特殊的点,就是(x,y);
for(j=0;j<7;j++)//七个位置
if(con[num[i]][j])
{
if(j%3==0)
{
row=x+(s+1)*j/3;
col=y;
}
else
{
row=(int(j/3))*(s+1)+x;
if(j%3==1)
col=y;
else
col=y+(s+1);
}
for(k=0;k<s;k++)
{
if(j%3==0)//0,3,6时,列变
{
col++;
map[row][col]='-';
}
else//1,2,4,5时,行变
{
row++;
map[row][col]='|';
}
}
}
}
if(output_f)
printf("\n");
else
output_f=1;
for(i=0;i<2*s+3;i++)
{
for(j=0;j<(s+3)*num_i-1;j++)
printf("%c",map[i][j]);
printf("\n");
}
}
return 0;
}
- poj 1102
- POJ-1102
- POJ 1102 LC DISPLAY
- poj 1102 LC-Display
- poj 1102--LCDisplay
- POJ 1102 LC-Display
- poj 1102 LC-Display
- POJ 1102 - LC-Display
- POJ
- poj
- POJ
- POJ
- poj
- poj
- POJ
- POJ
- poj
- POJ
- 2012华东架构师大会相关
- poj1101
- 打印三角形(空心,实心)
- 从3.01版本开始,“万能数据库查询分析器”中英文版本将全部免费
- Linux 文件系统剖析
- poj 1102
- C++笔记(三)
- mjpg-streamer在centos中的安装
- 一些代码
- HDU2058
- Android 开发之 ---- bootloader (LK)
- yii-视图- form时间控件的使用
- 企业应用平台(EAP)概述
- oracle学习笔记