これは関係ないでしょ
 int x,y;
 int y,x;

ミスをしたんだな。

xは一般的にx軸のことであり横方向であり、
横1行の処理を終えたら次の行というのが多いパターンであり
配列のメモリ上の並び順は
 a[0][0]
 a[0][1]
 a[0][2]
 a[1][0]
 a[1][1]
 a[1][2]
だから
 a[y][x]
というのが一般的だと思う。

だから(推測だけど)
入門書の説明しているときは、a[y][x]にする予定だった。
でも実際にプログラムを作るときにミスしたんだよ。