[ Source Code ]#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//////////////////////////////////////////////////////////////////////////
// Define
#define MAX_ROW 14
#define MAX_COLUMN 23
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// Function declaration
void printNumber ( char *, int );
void printRowColumn ( int, int );
int data[10][5] = { 4, 3, 5, 3, 4,
5, 2, 5, 2, 5,
4, 2, 4, 1, 4,
4, 2, 4, 2, 4,
5, 3, 4, 2, 5,
4, 1, 4, 2, 4,
4, 1, 4, 3, 4,
4, 2, 5, 2, 5,
4, 3, 4, 3, 4,
4, 3, 4, 2, 4};
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// Main
int main ( void )
{
int size;
char input[9];
while ( 1 ) {
scanf ( "%d", &size );
getchar ();
if ( size == 0 ) {
break;
}
scanf ( "%s", input );
printNumber ( input, size );
printf ( "\n" );
}
return 0;
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// Function printNumber
// Input : Input string, size integer
// Memo : print Number to screen
void printNumber ( char *input, int size )
{
int count, count1, count2, len, multi = 1, temp;
char ctemp;
len = strlen ( input );
// loop to end of input
for ( count = 0 ; count < 5 ; count++ ) {
if ( count == 1 || count == 3 ) {
multi = size;
}
for ( count1 = count2 = 0 ; count1 < len * multi ; count1++ ) {
// print by input number
if ( count1 != 0 ) count2 = count1 % len;
ctemp = input[count2];
temp = atoi ( &ctemp );
printRowColumn ( size, data[temp][count] );
// when one row printed, print '\n'
if ( len != 1 && count1 != 0 && count2 == len - 1 ) {
printf ( "\n" );
}
else {
if ( len != 1 ) {
printf ( " " );
}
else {
printf ( "\n" );
}
}
}
multi = 1;
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// Function printRowColumn
// Input : print size, print type ( type 1 - '| ', type 2 - ' |', type 3 - '| |', type 4 - '---', type 5 ' '
// Memo : print Left '|', ' ' what we want
void printRowColumn ( int size, int type )
{
int count, count1;
switch ( type ) {
case 1 :
printf ( "|" );
for ( count = 0 ; count < size + 1 ; count++ ) {
printf ( " " );
}
break;
case 2 :
for ( count = 0 ; count < size + 1 ; count++ ) {
printf ( " " );
}
printf ( "|" );
break;
case 3 :
printf ( "|" );
for ( count = 0 ; count < size ; count++ ) {
printf ( " " );
}
printf ( "|" );
break;
case 4 :
printf ( " " );
for ( count = 0 ; count < size ; count++ ) {
printf ( "-" );
}
printf ( " " );
break;
case 5 :
for ( count = 0 ; count < size + 2 ; count++ ) {
printf ( " " );
}
break;
}
}
//////////////////////////////////////////////////////////////////////////
|