Bueno aquí te doy una idea aunque no creo que este del todo bien ,creo que te puede servir para hacerte una idea.
#include<iostream>
#include<stdio.h>
#define max 3
typedef struct{
int codigo;
char nombre[30];
int cont;
int fv;
}Lote;
typedef struct {
struct Lote EA[max][max];
struct Lote EB[max][max];
}Estante;
typedef Estante Pasillo; //Creo asi funcionaria, no estoy seguro ya que no suelo trabajar en c.
Pasillo PA;
Pasillo PB;
Pasillo PC;
Pasillo PD;
Pasillo PE;
void ordenar(Lote tabla[max][max]){
//Por el método de la burbuja o por algun otro.
}
void Ingresar(Lote l,char Pasillo[5],char Estante[5]){ //Bueno esta funcion seria asi si no se lee de un archivo.
/*Procedimiento a seguir*/
//Busco el pasillo y el estante.
//!Ojo¡ ,El estante depende del color del estante.
//Inserto el lote.
//Por último llamo a una función auxiliar, llamada "ordenar" que utiliza el método de la burbuja para ordenar un array bidemencional.
//Esta creo que es la forma mas fácil para ordenar por el método de la burbuja.
//Tienes que tener en cuenta que hay que buscar una forma de saber si en la matrix hay algún elemento en la posición que quieres insertar.
//Para eso podría poner a 0 todas las fv y buscarte la vida para insertar el elemento"Seguro que hay otras formas de hacerlo",
//aunque segun dice el enunciado tienes que proporcionar la ubicación próxima disponible, por lo cual,
//talvez alla que pasarle la ubicación como parámetro"seria mucho mas fácil".
}
Ya a partir de aquí puedes implementar los otros métodos.
Recomendaciones:
Nunca pongas dentro de las funciones mensajes de salida , devuelve un valor y haces un tratamiento en el main.
Siempre intenta ultilizar los tipos de datos, en este caso struct, para simplificar el código, que para algo están.
Plantea el problema en un folio y luego intenta programarlo.
Si vas a leer de un archivo, File *nombreFichero , mételo dentro de la función.
No si has dado en el curso los .h si es asi utilizalos para separar la implementación del programa principal y también separa los archivos ejecutables
usando una opción de devc++ o cualquier otro programa que utilices.
Si ves que tu código se esta haciendo demasiado pesado para resolver un problema sencillo vuelve a hacerlo porque esta mal.