Xin chào tất cả mọi người, em có một bài tập có yêu cầu là viết 2 hàm bằng C:
- Nhập vào một số nguyên n (0<n<=10) từ bàn phím
- Nhập n xâu ký tự từ bàn phím.
Em có viết như sau:
int nhapint(){
int n;
printf("Nhap so nguyen n: ");
scanf("%i",&n);
while (n<=0||n>10){
printf("n phai lon hon 0 va nho hon 10, vui long nhap lai: ");
scanf("%i",&n);
}
return n;
}
void nhapXau(char a[][1000],int n){
fflush(stdin);
for (int i=0;i<n;i++){
printf("Nhap xau thu %i: ",i+1);
fgets(a[i],1000,stdin);
fflush(stdin);
}
}
Ở main thì em gọi ra như sau:
int n=nhapint();
char a[1000][1000];
nhapXau(a,n);
Nhưng khi compile và run thì nó luôn skip mất phần nhập phần tử đầu tiên như thế này:
Em đã thử dùng fflush(stdin) nhưng vẫn không giải quyết được vấn đề. Rất mong được mọi người giúp đỡ ạ. Em xin chân thành cám ơn

giờ dùng getchar để khử ‘\n’ thôi.
dù sao thì fflush(stdin) cũng không chuẩn. Để xả ‘\n’ ra khỏi stdin thì dùng
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?