Hola! primero que nada antes de postiar un codigo estaria bueno que
revises el programa y veas los posibles errores que puede tener (no digas: "uhh no me anda, subo el codigo y q me lo arreglen", a muchos les caeria mal ya que son errores muy simples)
Te marco algunos errores:
1º En el main abris muchas llaves pero no cerras todas
2º En cargalote() usas varias variables pero a muchas no la declaras
3º En algunas partes del codigo pareciera que sabes usar las matrices pero en el for-switch dice todo lo contrario(tenes que usar los dos subindices M[][]). Ademas revisa bien que es lo que hace ese for-switch, ¿estas seguro que queres usar
ulega solo como subindice?
En el switch del case 5, ¿¿te olvidaste los break??
4º
void cargalote(int* nlegajo)
{
while(nlegajo !=0)
{
Si vas a pasar nlegajo por pseudoreferencia, tenes que usar *(indireccion) para acceder al contenido de esa variable. Seria:
void cargalote(int* nlegajo)
{
while(*nlegajo !=0) // *nlegajo: el contenido de nlegajo
{
y asi en todos los casos que usas nlegajo
Saludos
PD: usa las Geshi para postiar codigo