Chương trình bỏ qua phần nhập chuỗi ký tự vào Lop[i].tenlop và Lop[vitri].sv[j].ten

Chương trình của mình như sau :

typedef struct
{
   char ten[100];
   int dhoa;
   int dtoan;
   int dly;
}SV;
typedef struct
{
    char lop[10];
    int siso;
    SV sv[100];
}LOP;
void IN_SV(LOP Lop[],int vitri,SV sv[],int soluong)
{
    for(int j =0;j<soluong;j++)
    {
        printf("- SV %d: ",j+1);
        printf("- Ten : "); gets(Lop[vitri].sv[j].ten);
        printf("- Diem hoa : "); scanf("%d",&Lop[vitri].sv[j].dhoa);
        printf("- Diem ly : "); scanf("%d",&Lop[vitri].sv[j].dly);
     printf("- Diem toan : "); scanf("%d",&Lop[vitri].sv[j].dtoan);

    }
}
void IN_LOP(LOP Lop[],int soluong)
{
    for(int i =0;i<soluong;i++)
    {
        printf("================== Lop %d : ",i+1); gets(Lop[i].lop);
        printf("============ Si so lop %s : ",Lop[i].lop); scanf("%d",&Lop[i].siso);
        IN_SV(Lop,i,Lop[i].sv,Lop[i].siso);
    }
}
int main()
{
    LOP Lop[20]; int sllop;
    printf("Nhap so luong lop : "); scanf("%d",&sllop);
    IN_LOP(Lop,sllop);

}

Khi test thử thì kết quả lại hiện ra là "================== Lop ============ Si so lop 1 : "
Phần nhập vào chuỗi tenlop và phần nhập vào chuỗi tên của sv bị bỏ qua.
Ai giúp với

Bạn thử fflush(stdin); trước mỗi đoạn gets xem?

Dạ được rồi, cảm ơn anh nhiều

Làm được rồi, nhớ tìm hiểu tại sao.

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