Я бы сохранил матрицу 4x4 цифр как char [16], интерпретируя первые четыре символа как первый ряд, следующие четыре символа как второй ряд и т. Д. Вы можете легко сгенерировать все возможные значения с помощью рекурсии, используя for
петля на каждом уровне.
void print_all_possible_matrices(char *matrix, int level) {
if(level == 16) {
print_matrix(matrix);
}
for(int i = 0; i < 10; ++i) {
matrix[level] = i;
print_all_possible_matrices(matrix, level + 1);
}
}
Вы бы использовали это следующим образом:
int main() {
char matrix[16];
print_all_possible_matrices(matrix, 0);
}
Но это займет очень много времени.