Lỗi không nhập và in thông tin

struct thongtin{
	char ten[50];
	char tuoi[10];
};
struct giave{
	int tien;
	int sove;
};
void nhapgiave(struct giave c[],int *n){
	n++;
	printf("\nGia ve buoi chieu:");
    scanf("%d",&(c[*n]).tien);
    printf("\nSo ve khach mua: ");
   	scanf("%d",&(c[*n]).sove);
}
void nhapthongtin(struct thongtin b[],int *n){
	n++;
	printf("\nTen khach hang:");
	gets(b[*n].ten);
	printf("\nTuoi khach hang:");
	gets(b[*n].tuoi);
}
void inthongtin(struct thongtin b[],int *n){
	int i=1;
	printf("\n ---------Thong Tin Khach Hang---------");
	printf("\n%-5s %-5s %-5s","STT","Ten","Tuoi");
	while(i<=*n){
			printf("\n%d %-5s %-5s",i,b[i].ten,b[i].tuoi);
			i++;
	}
}
int main(){
	struct thongtin b[1000];
	struct giave c[1000];
	int n=0,a;
	printf("\tTRUNG TAM CHIEU PHIM\n");
	printf("1. Nhap gia ve buoi chieu\n");
	printf("2. Nhap thong tin khach hang\n");
	printf("3. In thong tin khach hang\n");
	printf("4. In tong ket\n");
	printf("5. Thoat\n");
	do{
	printf("\nNhap lua chon cua ban: ");
	scanf("%d",&a);
	fflush(stdin);
	switch(a){
		case 1:{
			nhapgiave(c,&n);	
			break;
		}
		case 2: {
			nhapthongtin(b,&n);
			break;
		}
		case 3: {
			inthongtin(b,&n);
			break;
		}
		case 4: {
			break;
		}
		case 5: printf("Thoat!!!\n");break;
	}
	}while (a!=5);
	return 0;
}

Chương trình vẫn chạy được nhưng lúc nhập giá vé hoặc nhập thông tin thì lúc nhập được lúc không nhập được . Phần in thông tin khách hàng không chạy vòng lặp for .

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?