Struct con estructura de arreglos

Hacer un Menú, que permita ingresar n cantidad de personas a registrar, y nos muestre todos los que son varones, sólo mujeres y sólo mayores de edad. Después debe imprima todos los registrados.

#include <iostream.h>
#include <conio.h>
#define MAX 100
 struct personas{
                 char nombre[20];
                 char DNI[9];
                 int edad;
                 char s;
                 };

void registrar(int, struct personas[]);
void registrados(int, struct personas[]);
void varones(int, struct personas[]);
void mujeres(int, struct personas[]);
void mayoresdeedad(int, struct personas[]);
void main()
{int n,opc;
 struct personas per[MAX];

 do
 {
 cout<<"1. Registar"<<endl;
 cout<<"2. Lista de Varones"<<endl;
 cout<<"3. Lista de Mujeres"<<endl;
 cout<<"4. Mayores de Edad"<<endl;
 cout<<"5. Registrados"<<endl;
 cout<<"6. Salir"<<endl;
 cout<<endl;
 cout<<"Ingrese Opcion:";
 cin>>opc;
 cout<<endl;
 switch(opc)
 {case 1: cout<<"Cantidad de Personas que desea registrar:";
          cin>>n;
          cout<<endl<<"***Registre Personas***"<<endl;
          registrar(n,per);
          break;
 case 2: cout<<"***Lista de Varones***"<<endl;
         varones(n,per);
         break;
 case 3: cout<<"***Lista de Mujeres***"<<endl;
         mujeres(n,per);
         break;
 case 4: cout<<"***Mayores de Edad***"<<endl;
         mayoresdeedad(n,per);
         break;
 case 5: cout<<"***Lista de Registrados***"<<endl;
         registrados(n,per);
         break;
}
}while(opc!=6);
}
void registrar(int n, struct personas x[])
{for(int i=0;i<n;i++)
           {cout<<"Nombre :"; cin>>x[i].nombre;
            cout<<"DNI    :"; cin>>x[i].DNI;
            cout<<"Edad   :"; cin>>x[i].edad;
            cout<<"Genero[F/M]:"; cin>>x[i].s;
            cout<<endl;
            }
            getch();
}
void registrados(int n, struct personas x[])
{int i;
 for(i=0;i<n;i++)
 {cout<<x[i].nombre<<"t" <<x[i].DNI<<"t" <<x[i].edad<<"t" <<x[i].s<<"t";
  cout<<endl;
 }
 getch();
 }
 void varones(int n, struct personas x[])
 {for(int i=0;i<n;i++)
  if(x[i].s=='M'|| x[i].s=='m')
    cout<<x[i].nombre<<"t"<<x[i].DNI<<"t"<<x[i].edad<<"t"<<x[i].s<<endl;
    getch();
  }
  void mujeres(int n, struct personas x[])
  {for(int i=0;i<n;i++)
  if(x[i].s=='F' || x[i].s=='f')
  cout<<x[i].nombre<<"t"<<x[i].DNI<<"t"<<x[i].edad<<"t"<<x[i].s<<endl;
    getch();
  }
  void mayoresdeedad(int n, struct personas x[])
  {for(int i=0;i<n;i++)
    if(x[i].edad>=18)
    cout<<x[i].nombre<<"t" <<x[i].DNI<<"t" <<x[i].edad<<"t" <<x[i].s<<endl;
    getch();
  }