#include <stdio.h>
void print_multiplies(char dan[9], int columns);
int main(void) {
for(;;) {
char query, dan[9] = "";
int columns;
printf("어떤 단을 출력하시겠습니까? ");
if(scanf(" %c", &query) < 1 || (query |= 0x20) == 'c') return 0;
printf("몇 열로 끊어서 출력하시겠습니까? ");
if(scanf(" %d", &columns) < 1 ||
columns < 1 || columns > 9) return 1;
switch(query) {
case 'a':
dan[1] = dan[2] = dan[3] = dan[4] = dan[5]
= dan[6] = dan[7] = dan[8] = 1;
break;
case 'e':
dan[1] = dan[3] = dan[5] = dan[7] = 1;
break;
case 'o':
dan[2] = dan[4] = dan[6] = dan[8] = 1;
}
print_multiplies(dan, columns);
}
return 1;
}
void print_multiplies(char dan[9], int columns) {
register int i;
for(i = 1; i <= 9; ++i, ++dan) {
register int j;
if(!*dan) continue;
for(j = 1; j <= 9; ++j) {
printf("%d * %d = %d\t", i, j, i * j);
if(!(j % columns))
putchar('\n');
}
putchar('\n');
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIHByaW50X211bHRpcGxpZXMoY2hhciBkYW5bOV0sIGludCBjb2x1bW5zKTsKCmludCBtYWluKHZvaWQpIHsKCWZvcig7OykgewoJCWNoYXIgcXVlcnksIGRhbls5XSA9ICIiOwoJCWludCBjb2x1bW5zOwoKCQlwcmludGYoIuyWtOuWpCDri6jsnYQg7Lac66Cl7ZWY7Iuc6rKg7Iq164uI6rmMPyAiKTsKCQlpZihzY2FuZigiICVjIiwgJnF1ZXJ5KSA8IDEgfHwgKHF1ZXJ5IHw9IDB4MjApID09ICdjJykgcmV0dXJuIDA7CgoJCXByaW50Zigi66qHIOyXtOuhnCDrgYrslrTshJwg7Lac66Cl7ZWY7Iuc6rKg7Iq164uI6rmMPyAiKTsKCQlpZihzY2FuZigiICVkIiwgJmNvbHVtbnMpIDwgMSB8fAoJCQljb2x1bW5zIDwgMSB8fCBjb2x1bW5zID4gOSkgcmV0dXJuIDE7CgoJCXN3aXRjaChxdWVyeSkgewoJCWNhc2UgJ2EnOgoJCQlkYW5bMV0gPSBkYW5bMl0gPSBkYW5bM10gPSBkYW5bNF0gPSBkYW5bNV0KCQkJCT0gZGFuWzZdID0gZGFuWzddID0gZGFuWzhdID0gMTsKCQkJYnJlYWs7CgoJCWNhc2UgJ2UnOgoJCQlkYW5bMV0gPSBkYW5bM10gPSBkYW5bNV0gPSBkYW5bN10gPSAxOwoJCQlicmVhazsKCgkJY2FzZSAnbyc6CgkJCWRhblsyXSA9IGRhbls0XSA9IGRhbls2XSA9IGRhbls4XSA9IDE7CgkJfQoKCQlwcmludF9tdWx0aXBsaWVzKGRhbiwgY29sdW1ucyk7Cgl9CgoJcmV0dXJuIDE7Cn0KCnZvaWQgcHJpbnRfbXVsdGlwbGllcyhjaGFyIGRhbls5XSwgaW50IGNvbHVtbnMpIHsKCXJlZ2lzdGVyIGludCBpOwoKCWZvcihpID0gMTsgaSA8PSA5OyArK2ksICsrZGFuKSB7CgkJcmVnaXN0ZXIgaW50IGo7CgoJCWlmKCEqZGFuKSBjb250aW51ZTsKCQkKCQlmb3IoaiA9IDE7IGogPD0gOTsgKytqKSB7CgkJCXByaW50ZigiJWQgKiAlZCA9ICVkXHQiLCBpLCBqLCBpICogaik7CgoJCQlpZighKGogJSBjb2x1bW5zKSkKCQkJCXB1dGNoYXIoJ1xuJyk7CgkJfQoKCQlwdXRjaGFyKCdcbicpOwoJfQp9