Code:

#include "stdio.h"
#include "conio.h"
#include "string.h"

typedef struct NgayThang{
  unsigned char Ngay;
  unsigned char Thang;
  unsigned int Nam;
};

typedef struct SinhVien{
   char MSSV[10];
   char HoTen[40];
   NgayThang NgaySinh;
   int Phai;
   char DiaChi[40];
};

//nhap sinh vien
SinhVien Nhap(){
   SinhVien sV;
   printf("\tMSSV: ");
   gets(sV.MSSV);
   printf("\tHo ten: ");
   gets(sV.HoTen);
   printf("\tNgay sinh: ");
   scanf("%d",&sV.NgaySinh.Ngay);
   printf("\tThang: ");
   scanf("%d",&sV.NgaySinh.Thang);
   printf("\tNam sinh: ");
   scanf("%d",&sV.NgaySinh.Nam);
   printf("\tGioi tinh (0:Nu,1:Nam): ");
   scanf("%d",&sV.Phai);
   flushall();
   printf("\tDia chi:");
   gets(sV.DiaChi);
   return sV;
}

//nhap n sinh vien
SinhVien * Nhap(unsigned int n) {
   SinhVien *temp = new SinhVien[n];
   for(int i = 0; i<n; i++)
   {
      printf("Nhap sinh vien thu %d\n",i+1);
      temp[i] = Nhap();
   }
   return temp;
}

//xuat 1 sinh vien
void Xuat(SinhVien sv) {
   printf("%s", sv.MSSV);
   printf("\t%s",sv.HoTen);
   if(sv.Phai == 1)
      printf("\tNam");
   else
      printf("\tNu");
   printf("\t%d-%d-%d",sv.NgaySinh.Ngay,sv.NgaySinh.Thang,sv.NgaySinh.Nam);
   printf("\t%s\n",sv.DiaChi);
}

//xuat n sinh vien ra man hinh
void Xuat(SinhVien *sv, unsigned int n) {
   printf("\nMSSV\tHo ten\tNgay sinh\tPhai\tDia Chi\n");
   for(int i =0; i<n; i++)
      Xuat(sv[i]);
}
//chuong trinh chinh
void main() {
   clrscr();
   unsigned int n;
   SinhVien *sv;
   printf("Nhap vao so sinh vien:");
   scanf("%d",&n);
   sv = Nhap(n);
   SinhVien *sv1;
   sv1 = sv;
   Xuat(sv1,n);
   getch();
}