Aqui:
Código:
int i=0;
for(i=0;i<max;i++)
No necesitas darle el valor a "i" cuando la declaras, ya que luego le darás un valor en el bucle FOR.
Es una practica sana de programacion, que ahorra muchos problemas, inicializar las variables nada mas declararlas. Sigue haciendolo, y te ahorraras muchos quebraderos de cabeza buscando el porque de que una variable tenga valores extraños o no se cumplan condiciones que deberias de cumplirse si las hubieses inicializado con el valor correcto.
Aqui:
Código:
printf("nombre del alumno:\n\t");
scanf("%s",programacion.nombre);
printf("apellido del alumno:\n\t");
scanf("%s",programacion.apellido);
...
Como es un array de registros, necesitas especificar el indice del array, así:
Código:
programacion[indice].campo
Leo, intenta ecribir el indice i entre corchetes en el editor directamente, sin utilizar las etiquetas de codigo, y dale a previsualizar. ¡Sorpresa! ¡Lo estas escribiendo en cursiva!
Y conesto si que puede haber resultados extraños
"\t\t\%s"
Ya que la funcion printf, detectara 3 secuencias de escape: \t \t y \% por lo que te imprimira el especificador de tipo 's' y ya esta. Te sobra la ultima barra invertida:
"\t\t%s"
¡¡¡Un saludo!!!