Cho mình hỏi sao bài này của mình nó k in ra thông tin học sinh đã nhập vào vậy

#include<stdio.h>
#include<conio.h>
#include<iostream>
#include<string.h>
using namespace std;
struct NGSINH
{
	int ngay,thang,nam;
};
struct HOCSINH
{
	int sbd;
	int gtinh;
	char hoten[20];
	char hkhau[20];
	NGSINH	ngsinh;
	float tongdiem;
};
void nhap(HOCSINH a[20],int n)
{
	int i;
	
	for(i=1;i<=n;i++)
		{
			cout<<"Nhap vao thong tin hoc sinh "<<i<<":"<<endl;
			cout<<"\t\tSo bao danh: ";					cin>>a[i].sbd;
			cout<<endl<<"\t\tGioi tinh: ";				cin>>a[i].gtinh; // 1:nam 2:nu
			fflush(stdin);
			cout<<endl<<"\t\tNhap vao ho va ten: ";		gets(a[i].hoten);	
			fflush(stdin);
			cout<<endl<<"\t\tNhap vao ho khau: ";		gets(a[i].hkhau);		
			fflush(stdin);
			cout<<endl<<"\t\tNhap vao ngay sinh: "<<endl;
			cout<<"\t\tNgay: ";							cin>>a[i].ngsinh.ngay;
			cout<<endl<<"\t\tThang: ";					cin>>a[i].ngsinh.thang;
			cout<<endl<<"\t\tNam: ";					cin>>a[i].ngsinh.nam;
			cout<<endl<<"\t\tNhap vao tong diem: "; 	cin>>a[i].tongdiem;
		}
}
void in(HOCSINH a[20],int n)
{
	int i;
	cout<<"Danh sach thong tin hoc sinh: ";
	for(i=1;i<=n;i++)
		{
			cout<<endl<<"Hoc sinh "<<i<<":"<<endl;
			cout<<"\t\tSo bao danh: ";					cout<<a[i].sbd;
			cout<<endl<<"\t\tGioi tinh: ";				cout<<a[i].gtinh;
			cout<<endl<<"\t\t ho va ten: ";				cout<<a[i].hoten;
			cout<<endl<<"\t\t ho khau: ";				cout<<a[i].hkhau;
			cout<<endl<<"\t\t ngay sinh: "<<endl;		cout<<a[i].ngsinh.ngay<<"-"<<a[i].ngsinh.thang<<"-"<<a[i].ngsinh.nam;
			cout<<endl<<"\t\t tong diem: "; 			cout<<a[i].tongdiem;
		}
}
main()
{	int n;
	HOCSINH a[n];
	do{
		cout<<"Nhap vao so hoc sinh: ";
		cin>>n;
	}while(n<2||n>20);
	
	nhap(a,n);
	in(a,n);
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?