#include<math.h>
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
struct hoso {
char hoten[30] ;
int ngay ;
int thang ;
int nam ;
int diem ;
char quequan[30] ;
};
hoso nhaphoso()
{
hoso a ;
printf("Nhap ho ten :") ;
gets(a.hoten) ;
printf("Nhap ngay/thang/nam sinh :") ;
scanf("%d%d%d",&a.ngay,&a.thang,&a.nam) ;
printf("Nhap diem dau vao :") ;
scanf("%d",&a.diem) ;
printf("Nhap que quan :") ;
gets(a.quequan) ;
return a ;
}
int nhap()
{
int n ;
do {
printf("Nhap n sinh vien :") ;
scanf("%d",&n) ;
}while(n <= 0) ;
return n ;
}
void xuat(int n)
{
for (int i = 1 ; i <= n ; i++) {
hoso a ;
printf("Nhap sinh vien thu %d \n",i) ;
nhaphoso(a) ;
printf("Ho va ten : %s\n",a.hoten) ;
printf("Ngay/thang/nam sinh : %d/%d/%d\n",a.ngay,a.thang,a.nam) ;
printf("Que quan quan: %s\n",a.quequan) ;
printf("Diem dau vao : %d\n",a.diem) ;
}
}
int main()
{
int n ;
n = nhap() ;
xuat(n) ;
}
Tại sao mình không nhập được họ tên, sử dụng hàm gets nhưng nó bỏ qua?
bạn thiếu lệnh fflush(stdin); trước câu lệnh gets. Công dụng của nó như thế nào thì bạn nên tự tìm hiểu
2018 rồi mà vẫn khuyên người ta dùng fflush(stdin) à 
Phải là fflush(stdout).
2 Likes
Bạn dùng cin.ignore() trước gets(a.hoten) để xóa bộ nhớ đệm bàn phím
được rồi , cảm ơn bạn .
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?