[IMG]images/smilies/icon_question.gif[/IMG][IMG]images/smilies/waiting.gif[/IMG]
tất cả các phần mình đều kiểm tra và không thấy lỗi nhưng khi dùng đến hàm Them(); nếu thêm ở đầu danh sách liên kết thì có lỗi sảy ra là nó chỉ in ra phần tử mình thêm vào mà không in ra các phần tử còn lại. [IMG]images/smilies/opacli.gif[/IMG] Hi vọng mọi người giúp mình Thank!
Mã:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<malloc.h>
//#include<ctype.h>
typedef struct SinhVien
{
char ten[30];
int tuoi;
char MSSV[10];
char CMND[13];
char que[25];
struct SinhVien *tiep;
}DanhSach;
void *Nhap();
void Xuat(DanhSach*);
DanhSach *Xoa(DanhSach* );
DanhSach *Them(DanhSach* );
int main()
{
DanhSach *Sv, *Sv_dau;
Sv_dau = Nhap();
system("cls");//xoa man hinh
Xuat(Sv_dau);
//xoa mot phan tu
Sv_dau = Xoa(Sv_dau);
Xuat(Sv_dau);
//them mot phan tu
Sv_dau = Them(Sv_dau);
Xuat(Sv_dau);
free(Sv);
free(Sv_dau);
return 0;
}
//ham nhap danh sach sinh vien
void *Nhap()
{
DanhSach *Sv, *Sv_dau;
char ten[30];
int i = 0, temp = 0;
Sv = Sv_dau = NULL;
while(1)
{
printf("
Sinh Vien thu %d: ",++i);
printf("
Nhap Ten: ");
fflush(stdin);//xoa bo dem
gets(ten);/hap ten
if(ten[0] == '\0')
return Sv_dau;//tra lai la con tro Sv_dau
if(Sv_dau == NULL)/eu phan tu dau chua NULL
{
Sv = (DanhSach*)malloc(sizeof(DanhSach));//cap phat vung nho cho phan tu dau tien
Sv_dau = Sv;//tro Sv_dau den phan tu dau tien
}
else
{
Sv->tiep = (DanhSach*)malloc(sizeof(DanhSach));//cap phat vung nho cho cau truc moi
Sv = Sv->tiep;//cho con tro Sv tro toi vung nho vua cap phat
}
strcpy(Sv->ten,ten);//copy ten vua nhap o tren vao Sv->ten
printf("
Nhap Tuoi: ");
scanf("%d%*c",&temp);
Sv->tuoi = temp;
printf("
Nhap que quan: ");
gets(Sv->que);/hap que quan
printf("
Nhap MSSV: ");
gets(Sv->MSSV);/hap MSSV
printf("
Nhap CMND: ");
gets(Sv->CMND);/hap CMND
Sv->tiep = NULL;//gan cho con tro toi tiep la NULL neu nhu khong nhap ten nua
} //thi day la phan tu cuoi cua danh sach lien ket
}
//ham xuat ra danh sach sinh vien
void Xuat(DanhSach* Sv_dau)
{
DanhSach* Sv;
Sv = Sv_dau;
while(Sv != NULL)
{
printf("
Ten: %s
Tuoi: %d
Que quan: %s
MSSV: %s
CMND: %s
",
Sv->ten,Sv->tuoi,Sv->que,Sv->MSSV,Sv->CMND);
Sv = (*Sv).tiep;
}
}
//ham them phan tu vao danh sach
DanhSach *Them(DanhSach* Sv_dau)
{
DanhSach *Sv, *Sv_truoc;
char ten[30], temp;
int tuoi;
Sv = Sv_dau;
printf("
Ban muon chen vao dau danh sach nhan phim 'T'
Nguoc lai nhan phim 'S'");
temp = getch();
if(toupper(temp) == 'T')
{
printf("
Nhap ten: ");
fflush(stdin);
gets(ten);
if(ten[0] != '\0')
{
Sv_truoc = (DanhSach*)malloc(sizeof(DanhSach));
strcpy(Sv_truoc->ten,ten);
printf("
Nhap Tuoi: ");
scanf("%d%*c",&tuoi);
Sv_truoc->tuoi = tuoi;
printf("
Nhap que quan: ");
gets(Sv_truoc->que);
printf("
Nhap MSSV: ");
gets(Sv_truoc->MSSV);
printf("
Nhap CMND: ");
gets(Sv_truoc->CMND);
Sv_truoc->tiep = Sv;
Sv_dau = Sv_truoc;
printf("
Da chen thanh cong");
}else
printf("
Ban da khong chen them nguoi vao danh sach");
}
else if(toupper(temp) == 'S')
{
printf("
Chen them vao sau 1 nguoi co ten la: ");
fflush(stdin);
gets(ten);
Sv = Sv_dau;
while(Sv != NULL)
{
if(strcmp(Sv->ten,ten) == 0)
{
Sv_truoc = (DanhSach*)malloc(sizeof(DanhSach));
printf("
Nhap ten: ");
gets(Sv_truoc->ten);
printf("
Nhap Tuoi: ");
scanf("%d%*c",&tuoi);
Sv_truoc->tuoi = tuoi;
printf("
Nhap que quan: ");
gets(Sv_truoc->que);
printf("
Nhap MSSV: ");
gets(Sv_truoc->MSSV);
printf("
Nhap CMND: ");
gets(Sv_truoc->CMND);
Sv_truoc->tiep = Sv->tiep;
Sv->tiep = Sv_truoc;
printf("
Chen thanh cong!");
return Sv_dau;
}
Sv = Sv->tiep;
}if(Sv == NULL)
{
printf("
Khong ton tai ten '%s' trong danh sach",ten);
}
}
return Sv_dau;
}
//ham xoa phan tu
DanhSach *Xoa(DanhSach* Sv_dau)
{
DanhSach *Sv_truoc, *Sv;
char ten[30];
printf("
Nhap ten nguoi muon xoa: ");
fflush(stdin);
gets(ten);
if(ten[0] != '\0')
{
Sv = Sv_dau;
while(Sv != NULL)
{
if(strcmp(Sv->ten,ten) == 0)
{
if(strcmp(Sv_dau->ten,ten) == 0)
{
Sv_dau = Sv->tiep;
free(Sv);
return Sv_dau;
}
else
{
Sv_truoc->tiep = Sv->tiep;
free(Sv);
return Sv_dau;
}
printf("
Ten da xoa la: %s",ten);
free(ten);
}
Sv_truoc = Sv;
Sv = Sv->tiep;
if(Sv == NULL)
printf("
Nguoi ban muon xoa khong co trong danh sach");
}
}
}
View more random threads:
xã hội vững mạnh, nhu cầu mặc đẹp của con người ngày càng cao. ngành công nghiệp thời trang cũng đang vững mạnh chóng vánh. những nhà máy gia công hàng may mặc chẳng thể đóng góp lặng thầm vào sự...
Tìm xưởng may gia công tại TP Hồ...