Buenas Pedro lo veo todo bien. Has creado dos bucles, uno para recorrer los formularios y otro para recorrer los elementos dentro del formulario, en este ejercicio sólo hay un formulario con lo cual nos podíamos haber ahorrado un bucle
Quedaría así:
for (var j=0; j<formularioContacto.elements.length; j++){
if (formularioContacto.elements[j].type=='text' && ((j+1)==1 || (j+1)%3==1)) {
formularioContacto.elements[j].addEventListener('click', function(elEvento) {cambiaColor(elEvento, 'yellow', this);});
}else if(formularioContacto.elements[j].type=='text' && ((j+1)==2 || (j+1)%3==2)){
formularioContacto.elements[j].addEventListener('click', function(elEvento){cambiaColor(elEvento, 'cyan', this);});
}else{
formularioContacto.elements[j].addEventListener('click', function(elEvento){cambiaColor(elEvento, 'MediumSpringGreen', this);});
}
}
Aunque me gusta como lo has definido tú porque es más general, no está ligado a un nombre de formulario concreto
Salu2