POJ 1102 LC-Display 题解(gcc) - 哆啦比猫的技术瞎扯 - Arch Linux · ドラえもん · 实时绘制
POJ 1102 LC-Display 题解(gcc)
http://poj.org/problem?id=1102
#include <stdio.h>
char isd(char ch)
{
return ch >= 0 && ch < 10;
}
void print_lc(char size, char num[9]);
int main(void)
{
int ch;
char num[9];
char size;
while (1) {
scanf("%hhd", &size);
if (!size) break;
while ((ch = getchar()) == ' ') {}
ungetc(ch, stdin);
ch = 0;
while (isd(num[ch++] = getchar() - '0')) {}
num[--ch] = -1;
print_lc(size, num);
}
return 0;
}
static char display[7][10] = {
"- -- -----", // upper
"| ||| ||", // upper-left
"||||| |||", // upper-right
" ----- --", // mid
"| | | | ", // bottom-left
"|| |||||||", // bottom-right
"- -- -- --" // bottom
};
static char line[90];
void print_lc(char size, char num[9])
{
char s = size + 3;
char i, j, k;
line[s*i] = 0;
// upper
for (i=0; num[i] != -1; i++) {
line[s*i] = ' ';
line[s*i+size+1] = ' ';
line[s*i+size+2] = ' ';
for (j=1; j<=size; j++)
line[s*i+j] = display[0][num[i]];
}
line[s*i-1] = 0;
printf("%s\n", line);
// upper-left/right
for (i=0; num[i] != -1; i++) {
line[s*i] = display[1][num[i]];
line[s*i+size+1] = display[2][num[i]];
line[s*i+size+2] = ' ';
for (j=1; j<=size; j++)
line[s*i+j] = ' ';
}
line[s*i-1] = 0;
for (i=0; i<size; i++)
printf("%s\n", line);
// mid
for (i=0; num[i] != -1; i++) {
line[s*i] = ' ';
line[s*i+size+1] = ' ';
line[s*i+size+2] = ' ';
for (j=1; j<=size; j++)
line[s*i+j] = display[3][num[i]];
}
line[s*i-1] = 0;
printf("%s\n", line);
// bottom-left/right
for (i=0; num[i] != -1; i++) {
line[s*i] = display[4][num[i]];
line[s*i+size+1] = display[5][num[i]];
line[s*i+size+2] = ' ';
for (j=1; j<=size; j++)
line[s*i+j] = ' ';
}
line[s*i-1] = 0;
for (i=0; i<size; i++)
printf("%s\n", line);
// bottom
for (i=0; num[i] != -1; i++) {
line[s*i] = ' ';
line[s*i+size+1] = ' ';
line[s*i+size+2] = ' ';
for (j=1; j<=size; j++)
line[s*i+j] = display[6][num[i]];
}
line[s*i-1] = 0;
printf("%s\n\n", line);
}
凡未特殊声明(转载/翻译),所有文章均为原创。
by Giumo Xavier Clanjor (哆啦比猫/兰威举), 2010-2019.
本作品采用知识共享署名·非商业性使用·相同方式共享 3.0 中国大陆许可协议进行许可。
文中凡未特殊声明且未声明为引用的代码均以 MIT 协议授权。
blog comments powered by Disqus