Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Zdravím, jak by se v tomto případě napsalo mit char buffer[35] dynamicke jednorozmerne pole[35]
int volne_pole_cislo(int cislo, int radek, int sloupec) /*Funkce testuje, jestli cislo uz je v poli, radku, 3x3 nebo diagonale*/
{
int i, j, k, l, m, n, a , b;
char buffer[35];
for (i = 0; i < 8; i++) {
a = 0;
a += i;
if (sudoku[i][a] == 0 ) continue;
for (j = i + 1; j < 9; j++) {
b = 0;
b += j;
if (sudoku[j][b] == sudoku[i][a]) return (0);
}
}
for (i = 0; i < 8; i++) {
k = 8;
m = 0;
m = k - i;
if ( sudoku[i][m] == 0 ) continue;
for (j = i + 1; j < 9; j++) {
n = 8;
l = 0;
l = n - j;
if (sudoku[j][l] == sudoku[i][m]) return (0);
}
}
for (i = 0; i < 9; i++) if (sudoku[radek][i] == cislo) return(0);
for (i = 0; i < 9; i++) if (sudoku[i][sloupec] == cislo) return(0);
transformuj_ctverecek_poli(buffer, radek, sloupec);
for (i = 0; i < 9; i++) if (buffer[i] == cislo) return (0);
/* Jestli se mozne dane cislo doplnit podle splnenych podminek vrati funkce TRUE*/
return(1);
}/*konec volne_pole_cislo*/
void transformuj_ctverecek_poli(char buffer[], int radek, int sloupec)
{
int i, j, k;
while ((radek % 3) != 0) radek--;
while ((sloupec % 3) != 0) sloupec--;
k = 0;
for (j = radek; j < radek + 3; j++) {
for (i = sloupec; i < sloupec + 3; i++) {
buffer[++k] = sudoku[j][i];
}/*konec for i*/
}/*konec for j*/
}/*konec transformuj_ctverecek_poli*/Offline