#include #include #include // cislo, index bool digits[10][7] = { /*0*/{true, true, true, false, true, true, true}, /*1*/{false, false, true, false, false, true, false}, /*2*/{true, false, true, true, true, false, true}, /*3*/{true, false, true, true, false, true, true}, /*4*/{false, true, true, true, false, true, false}, /*5*/{true, true, false, true, false, true, true}, /*6*/{true, true, false, true, true, true, true}, /*7*/{true, false, true, false, false, true, false}, /*8*/{true, true, true, true, true, true, true}, /*9*/{true, true, true, true, false, true, true} }; void drawDigit(int num, int row, int line) { if(num == 10) { // dvojtečka if(line == 2 || line == 4) putchar('o'); else putchar(' '); return; } if(row % 2 == 0) { // vodorovne int digit = (row / 2 * 3); switch(digit) { case(0): { if(digits[num][0] || digits[num][1]) putchar('+'); else putchar(' '); if(digits[num][0]) printf("---"); else printf(" "); if(digits[num][0] || digits[num][2]) putchar('+'); else putchar(' '); } break; case(3): { if(digits[num][3] || digits[num][1] || digits[num][4]) putchar('+'); else putchar(' '); if(digits[num][3]) printf("---"); else printf(" "); if(digits[num][3] || digits[num][2] || digits[num][5]) putchar('+'); else putchar(' '); } break; case(6): { if(digits[num][6] || digits[num][4]) putchar('+'); else putchar(' '); if(digits[num][6]) printf("---"); else printf(" "); if(digits[num][6] || digits[num][5]) putchar('+'); else putchar(' '); } break; } } else { // svislice switch(row) { case(1): { if(digits[num][1]) putchar('|'); else putchar(' '); printf(" "); if(digits[num][2]) putchar('|'); else putchar(' '); } break; case(3): { if(digits[num][4]) putchar('|'); else putchar(' '); printf(" "); if(digits[num][5]) putchar('|'); else putchar(' '); } break; } } } void draw(int num1, int num2, int num3, int num4) { for(int i = 0; i < 7; i++) { if(i == 1 || i == 2) { drawDigit(num1, 1, i); printf(" "); drawDigit(num2, 1, i); printf(" "); drawDigit(10, 1, i); printf(" "); drawDigit(num3, 1, i); printf(" "); drawDigit(num4, 1, i); printf("\n"); } else if(i == 4 || i == 5) { drawDigit(num1, 3, i); printf(" "); drawDigit(num2, 3, i); printf(" "); drawDigit(10, 3, i); printf(" "); drawDigit(num3, 3, i); printf(" "); drawDigit(num4, 3, i); printf("\n"); } else { int row = i/3*2; drawDigit(num1, row, i); printf(" "); drawDigit(num2, row, i); printf(" "); drawDigit(10, row, i); printf(" "); drawDigit(num3, row, i); printf(" "); drawDigit(num4, row, i); printf("\n"); } } } int main() { char array[10]; gets(array); while(true) { if(strcmp(array, "end") == 0) { printf("end\n"); return 0; } draw(array[0]-'0', array[1]-'0', array[3]-'0', array[4]-'0'); printf("\n\n"); gets(array); } return 0; }