Em mới học ctdl> thì gặp bài này, mọi người cho e hỏi e sai ở đâu khi vòng for chạy chỉ nhập được lần đầu tiên ạ, em cảm ơn
#include<stdio.h>
#include<conio.h>
#include<string.h>
struct SinhVien {
char malop[100];
int masv;
char ten[100];
int namsinh;
char quequan[100];
};
typedef SinhVien sinhvien;
void nhapsv(sinhvien &sv){
fflush(stdin);
printf("\nNhap ten sinh vien: ");
gets(sv.ten);
fflush(stdin);
printf("Nhap mssv: ");
scanf("%d", &sv.masv);
fflush(stdin);
printf("Nhap ma lop: ");
gets(sv.malop);
fflush(stdin);
printf("Nhap nam sinh: ");
scanf("%d", &sv.namsinh);
fflush(stdin);
printf("Nhap que quan: ");
gets(sv.quequan);
}
void xuatsv(sinhvien sv){
printf("\nHo ten sv: %s", sv.ten);
printf("\nMssv: %d", sv.masv);
printf("\nMa lop: %s", sv.malop);
printf("\nNam sinh: %d", sv.namsinh);
printf("\nQue quan: %s", sv.quequan);
}
struct node {
sinhvien data;
node *next;
};
struct list {
node *pHead;
node *pTail;
};
void khoitao(list &l){
l.pHead = NULL;
l.pTail = NULL;
}
node* newnode (sinhvien sv){
node *p = new node;
p->data =sv;
p->next = NULL;
}
void themcuoi(list &l, node *p){
l.pTail->next =p;
l.pTail =p;
}
void xuat(list l){
for(node *k = l.pHead; k!=NULL; k = k->next){
xuatsv(k->data);
printf("\n");
}
}
main(){
list l;
khoitao(l);
int n;
printf("Nhap so sinh vien: ");
scanf("%d", &n);
for(int i =0; i<n; i++){
sinhvien sv;
printf("\nNhap thong tin sinh vien %d", i+1);
nhapsv(sv);
node *p = newnode(sv);
themcuoi(l,p);
}
xuat(l);
getch();
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?