#include <stdio.h>
int repetido(int iMat[4][4], int i, int j) {
for (int k = 0; k <= i; k++) {
for (int l = 0; l <= j; l++) {
if (iMat[i][j] == iMat[k][l - 1]) {
printf("\nNúmero repetido, digite outro:\n"); return 1;
}
}
}
return 0;
}
int main() {
int iMat[4][4];
printf("Digite 16 números diferentes para completar a matriz 4x4:\n"); for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
while (1) {
scanf("%i", &iMat
[i
][j
]); if (!repetido(iMat, i, j)) break;
}
}
}
for (int i = 0; i < 4; i++) {
for (int j
= 0; j
< 4; j
++) printf("%2i ", iMat
[i
][j
]); }
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgcmVwZXRpZG8oaW50IGlNYXRbNF1bNF0sIGludCBpLCBpbnQgaikgewogICAgZm9yIChpbnQgayA9IDA7IGsgPD0gaTsgaysrKSB7CiAgICAgICAgZm9yIChpbnQgbCA9IDA7IGwgPD0gajsgbCsrKSB7CiAgICAgICAgICAgIGlmIChpTWF0W2ldW2pdID09IGlNYXRba11bbCAtIDFdKSB7CiAgICAgICAgICAgICAgICBwcmludGYoIlxuTsO6bWVybyByZXBldGlkbywgZGlnaXRlIG91dHJvOlxuIik7CiAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOwp9CgppbnQgbWFpbigpIHsKICAgIGludCBpTWF0WzRdWzRdOwogICAgcHJpbnRmKCJEaWdpdGUgMTYgbsO6bWVyb3MgZGlmZXJlbnRlcyBwYXJhIGNvbXBsZXRhciBhIG1hdHJpeiA0eDQ6XG4iKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCA0OyBqKyspIHsKICAgICAgICAJd2hpbGUgKDEpIHsKCSAgICAgICAgICAgIHByaW50ZigiJWklaSAtPiAiLCBpLCBqKTsKCSAgICAgICAgICAgIHNjYW5mKCIlaSIsICZpTWF0W2ldW2pdKTsKCSAgICAgICAgICAgIGlmICghcmVwZXRpZG8oaU1hdCwgaSwgaikpIGJyZWFrOwogICAgICAgIAl9CiAgICAgICAgfQogICAgfQogICAgcHJpbnRmKCJcbiIpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspIHsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IDQ7IGorKykgcHJpbnRmKCIlMmkgIiwgaU1hdFtpXVtqXSk7CiAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgfQp9
Digite 16 números diferentes para completar a matriz 4x4:
00 -> 01 ->
Número repetido, digite outro:
01 -> 02 ->
Número repetido, digite outro:
02 -> 03 ->
Número repetido, digite outro:
03 -> 10 ->
Número repetido, digite outro:
10 -> 11 ->
Número repetido, digite outro:
11 -> 12 -> 13 ->
Número repetido, digite outro:
13 -> 20 -> 21 -> 22 ->
Número repetido, digite outro:
22 -> 23 ->
Número repetido, digite outro:
23 -> 30 -> 31 -> 32 -> 33 ->
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16