Quisiera saber si es legal y una buena practica crear una variable a la mitad de un bloque después de haber escrito código, como por ejemplo:
main(){
int i=0;
while(){
.
.
.
}
int c;
.
.
.
.
}
Con tal de que lo entiendas y le des el uso que necesites, no hay problema. Las convenciones e indicaciones no es que sean LA LEY, sino que son recomendaciones para organización del proyecto.