Language: C

#include <stdio.h>

#define W 4
#define H 4

void input(int**);
void work(int**);
int hcheck(int **);
int wcheck(int**);
int ncheck(int**);

int main()
{
	int bingo[H][W];
	int flag = 0;

	input(bingo);
	work(bingo);
	flag = hcheck(bingo);
	if (flag == 0)
		flag = wcheck(bingo);
	if (flag == 0)
		flag = ncheck(bingo);

	if (flag == 1)
		printf("Yes\n");
	else
		printf("No\n");


	return 0;
}

void input(int bingo[H][W])
{
	for (int i = 0; i < H-1; i++) {
		for (int j = 0; j < W - 1; j++)
			scanf("%d", &bingo[i][j]);
	}
}

void work(int bingo[H][W])
{
	int start = 0, limit;
	int n;

	scanf("%d", &limit);

	while (start < limit) {
		scanf("%d", &n);

		for (int i = 0; i < H - 1; i++) {
			for (int j = 0; j < W - 1; j++) {
				if (bingo[i][j] == n)
					bingo[i][j] = 101;
			}
		}
		start++;
	}
}

int hcheck(int bingo[H][W])
{
	int flag = 0;

	for (int i = 0; i < W - 1; i++) {
		if (bingo[i][0] == 101 && bingo[i][1] == 101 && bingo[i][2] == 101)
			flag = 1;
	}
	return flag;
}

int wcheck(int bingo[H][W])
{
	int flag = 0;

	for (int i = 0; i < W - 1; i++) {
		if (bingo[0][i] == 101 && bingo[1][i] == 101 && bingo[2][i] == 101)
			flag = 1;
	}
	return flag;
}

int ncheck(int bingo[H][W])
{
	int flag = 0;

	if (bingo[0][0] == 101 && bingo[1][1] == 101 && bingo[2][2] == 101)
		flag = 1;

	if (bingo[0][2] == 101 && bingo[1][1] == 101 && bingo[2][0] == 101)
		flag = 1;

	return flag;
}

Compiler output:
main.c: In function 'main':
main.c:17:15: error: passing argument 1 of 'input' from incompatible pointer type [-Wincompatible-pointer-types]
   17 |         input(bingo);
      |               ^~~~~
      |               |
      |               int (*)[4]
main.c:6:12: note: expected 'int **' but argument is of type 'int (*)[4]'
    6 | void input(int**);
      |            ^~~~~
main.c:18:14: error: passing argument 1 of 'work' from incompatible pointer type [-Wincompatible-pointer-types]
   18 |         work(bingo);
      |              ^~~~~
      |              |
      |              int (*)[4]
main.c:7:11: note: expected 'int **' but argument is of type 'int (*)[4]'
    7 | void work(int**);
      |           ^~~~~
main.c:19:23: error: passing argument 1 of 'hcheck' from incompatible pointer type [-Wincompatible-pointer-types]
   19 |         flag = hcheck(bingo);
      |                       ^~~~~
      |                       |
      |                       int (*)[4]
main.c:8:12: note: expected 'int **' but argument is of type 'int (*)[4]'
    8 | int hcheck(int **);
      |            ^~~~~~
main.c:21:31: error: passing argument 1 of 'wcheck' from incompatible pointer type [-Wincompatible-pointer-types]
   21 |                 flag = wcheck(bingo);
      |                               ^~~~~
      |                               |
      |                               int (*)[4]
main.c:9:12: note: expected 'int **' but argument is of type 'int (*)[4]'
    9 | int wcheck(int**);
      |            ^~~~~
main.c:23:31: error: passing argument 1 of 'ncheck' from incompatible pointer type [-Wincompatible-pointer-types]
   23 |                 flag = ncheck(bingo);
      |                               ^~~~~
      |                               |
      |                               int (*)[4]
main.c:10:12: note: expected 'int **' but argument is of type 'int (*)[4]'
   10 | int ncheck(int**);
      |            ^~~~~
main.c: At top level:
main.c:34:6: error: conflicting types for 'input'; have 'void(int (*)[4])'
   34 | void input(int bingo[H][W])
      |      ^~~~~
main.c:6:6: note: previous declaration of 'input' with type 'void(int **)'
    6 | void input(int**);
      |      ^~~~~
main.c:42:6: error: conflicting types for 'work'; have 'void(int (*)[4])'
   42 | void work(int bingo[H][W])
      |      ^~~~
main.c:7:6: note: previous declaration of 'work' with type 'void(int **)'
    7 | void work(int**);
      |      ^~~~
main.c:62:5: error: conflicting types for 'hcheck'; have 'int(int (*)[4])'
   62 | int hcheck(int bingo[H][W])
      |     ^~~~~~
main.c:8:5: note: previous declaration of 'hcheck' with type 'int(int **)'
    8 | int hcheck(int **);
      |     ^~~~~~
main.c:73:5: error: conflicting types for 'wcheck'; have 'int(int (*)[4])'
   73 | int wcheck(int bingo[H][W])
      |     ^~~~~~
main.c:9:5: note: previous declaration of 'wcheck' with type 'int(int **)'
    9 | int wcheck(int**);
      |     ^~~~~~
main.c:84:5: error: conflicting types for 'ncheck'; have 'int(int (*)[4])'
   84 | int ncheck(int bingo[H][W])
      |     ^~~~~~
main.c:10:5: note: previous declaration of 'ncheck' with type 'int(int **)'
   10 | int ncheck(int**);
      |     ^~~~~~