Una cosa, para que usas una variable para recorrer cada bucle?
puedes reutilizarlas, si tiense en cuenta que en cada entrada de un for le asignas a la variable i un 0, no tienes que tener en situaciones habituales mas que un iterador (si hay for's encadenados pues no te queda otra...).
PD: mu buen estilo de programar, tanto comentario e indentacion, ya podia coger esas costumbres todo el mundo!