Ya intenté probando limpiadores de buffers...fflush, .....getchar, etc. NO CONSIGO solución, ahora me saltea los scanf que levantan año y ubicación.
Código (c) [Seleccionar]
void ingresar_Nodo(){
nodo *nuevo=(nodo *) malloc(sizeof(nodo));
printf("Ingrese datos del álbum:\n");
printf("Album: ");
fgets(nuevo->album, 50, stdin);
getchar();
//scanf("%s", nuevo->album);
//fflush(stdout);
printf("Nombre:");
fgets(nuevo->nombre, 50, stdin);
getchar();
//scanf("%s",nuevo->nombre);
//fflush(stdout);
printf("Soporte: ");
fgets(nuevo->soporte, 31, stdin);
getchar();
printf("Año:");
scanf("%d", &nuevo->year);
getchar();
printf("\nCategoría: ");
fgets(nuevo->category, 31, stdin);
getchar();
//scanf("%s",nuevo->category);
//fflush(stdout);
printf("Ubicación física: ");
scanf("%d",&nuevo->ubicacion);
nuevo->siguiente=NULL;
if(primero==NULL){
primero=nuevo;
ultimo=nuevo;
}else{
ultimo->siguiente=nuevo;
ultimo=nuevo;
}
}