// make BINGO card
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
// (int fr) = 1:center free
int *make_bingo_card(int fr) {
int *b;
int i, j, loop;
b
= (int *)malloc(sizeof(int) * 25); if (b) {
for (i = 0; i < 25; i++) {
loop = 1;
while (loop) {
b
[i
] = (rand() % 15) + 1 + ((i
/ 5) * 15); if (fr && (i == 12)) {
b[i] = 0;
}
loop = 0;
for (j = 0; j < i; j++) {
if (b[i] == b[j]) {
loop = 1;
}
}
}
}
}
return b;
}
int print_bingo_card(int *b) {
int i, j;
char *t1 = "+----+----+----+----+----+\n";
char *t2 = " B I N G O \n";
char str[5][32];
if (!b) return 1;
for (i = 0; i < 5; i++) {
if (i) {
}
for (j = 0; j < 5; j++) {
if (b[i + (j * 5)]) {
snprintf(str
[j
], 31, " %2d ", b
[i
+ (j
* 5)]); } else {
}
}
printf("|%s|%s|%s|%s|%s|\n", str
[0], str
[1], str
[2], str
[3], str
[4]); }
return 0;
}
int free_bingo_card(int *b) {
if (b) {
}
return 0;
}
int main(void) {
// your code goes here
int *bingo, i;
for (i = 0; i < 5; i++) {
bingo = make_bingo_card(1);
print_bingo_card(bingo);
free_bingo_card(bingo);
}
return 0;
}
Ly8gbWFrZSBCSU5HTyBjYXJkCgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDx0aW1lLmg+CgovLyAoaW50IGZyKSA9IDE6Y2VudGVyIGZyZWUKaW50ICptYWtlX2JpbmdvX2NhcmQoaW50IGZyKSB7CglpbnQgKmI7CglpbnQgaSwgaiwgbG9vcDsKCQoJYiA9IChpbnQgKiltYWxsb2Moc2l6ZW9mKGludCkgKiAyNSk7CglpZiAoYikgewoJCWZvciAoaSA9IDA7IGkgPCAyNTsgaSsrKSB7CgkJCWxvb3AgPSAxOwoJCQl3aGlsZSAobG9vcCkgewoJCQkJYltpXSA9IChyYW5kKCkgJSAxNSkgKyAxICsgKChpIC8gNSkgKiAxNSk7CgkJCQlpZiAoZnIgJiYgKGkgPT0gMTIpKSB7CgkJCQkJYltpXSA9IDA7CgkJCQl9CgkJCQlsb29wID0gMDsKCQkJCWZvciAoaiA9IDA7IGogPCBpOyBqKyspIHsKCQkJCQlpZiAoYltpXSA9PSBiW2pdKSB7CgkJCQkJCWxvb3AgPSAxOwoJCQkJCX0gCgkJCQl9CgkJCX0KCQl9Cgl9CglyZXR1cm4gYjsKfQoKaW50IHByaW50X2JpbmdvX2NhcmQoaW50ICpiKSB7CglpbnQgaSwgajsKCWNoYXIgKnQxID0gIistLS0tKy0tLS0rLS0tLSstLS0tKy0tLS0rXG4iOwoJY2hhciAqdDIgPSAiICAgQiAgICBJICAgIE4gICAgRyAgICBPICBcbiI7CgljaGFyIHN0cls1XVszMl07CgoJaWYgKCFiKSByZXR1cm4gMTsKCXByaW50ZigiJXMiLCB0Mik7CglwcmludGYoIiVzIiwgdDEpOwoJZm9yIChpID0gMDsgaSA8IDU7IGkrKykgewoJCWlmIChpKSB7CgkJCXByaW50ZigiJXMiLCB0MSk7CgkJfQoJCWZvciAoaiA9IDA7IGogPCA1OyBqKyspIHsKCQkJaWYgKGJbaSArIChqICogNSldKSB7CgkJCQlzbnByaW50ZihzdHJbal0sIDMxLCAiICUyZCAiLCBiW2kgKyAoaiAqIDUpXSk7CgkJCX0gZWxzZSB7CgkJCQlzbnByaW50ZihzdHJbal0sIDMxLCAiJXMiLCAiRlJFRSIpOwoJCQl9CgkJfQoJCXByaW50ZigifCVzfCVzfCVzfCVzfCVzfFxuIiwgc3RyWzBdLCBzdHJbMV0sIHN0clsyXSwgc3RyWzNdLCBzdHJbNF0pOwoJfQoJcHJpbnRmKCIlcyIsIHQxKTsKCXByaW50ZigiXG4iKTsKCXJldHVybiAwOwp9CgppbnQgZnJlZV9iaW5nb19jYXJkKGludCAqYikgewoJaWYgKGIpIHsKCQlmcmVlKGIpOwoJfQoJcmV0dXJuIDA7Cn0KCmludCBtYWluKHZvaWQpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCWludCAqYmluZ28sIGk7CgkKCXNyYW5kKHRpbWUoTlVMTCkpOwoJCglmb3IgKGkgPSAwOyBpIDwgNTsgaSsrKSB7CgkJYmluZ28gPSBtYWtlX2JpbmdvX2NhcmQoMSk7CgkJcHJpbnRfYmluZ29fY2FyZChiaW5nbyk7CgkJZnJlZV9iaW5nb19jYXJkKGJpbmdvKTsKCX0KCQoJcmV0dXJuIDA7Cn0K