Matematické Fórum


1. 8. 2026 (L) Fórum bude brzy uzavřeno 😿

Nejste přihlášen(a). Přihlásit

#1 24. 10. 2013 15:14

Epoxi
Příspěvky: 31
Reputace:   
 

dynamicke pole

Zdravím, jak by se v tomto případě napsalo mit char buffer[35] dynamicke jednorozmerne pole[35]

Code:

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

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson