Demo 2, tehtävä 6 ----------------- Allaoleva ohjelma pyytää käyttäjää syöttämään 8x8 shakkilaudan ruutuja epästandardilla merkinnällä 00, 01, ... 07, 10, 11, ... 17, 20, ... 77 niin kauan kunnes jokaisella rivillä ja jokaisessa sarakkeessa on tasan yksi merkintä. Selitä miten se toimii ja muuta sitten kaikki siinä olevat taulukkoviittaukset käyttämään osoittimia. #include int ruutu_ok(int lauta[][8], int rivi, int sarake) { int i; for (i=0; i<8; i++) if (lauta[rivi][i]) return rivi*8+i; for (i=0; i<8; i++) if (lauta[i][sarake]) return i*8+sarake; return 0; } int main() { int lauta[8][8] = {} ; int ruutu, rivi, sarake, nappeja=0, v; do { printf("Syötä ruutu:"); if (scanf("%o", &ruutu)<0 || ruutu<0 || ruutu>077) break; rivi=ruutu/8; sarake=ruutu%8; if (v=ruutu_ok(lauta, rivi, sarake)) { printf("sorry, %o on jo merkitty\n", v); } else { printf("ok\n"); lauta[rivi][sarake]++; nappeja++; } } while (nappeja<8); for (rivi=0; rivi<8; rivi++) { for (sarake=0; sarake<8; sarake++) printf("%2d", lauta[rivi][sarake]); printf("\n"); } }