Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: danh sách liên kết

  1. #1
    Ngày gia nhập
    08 2008
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    28

    Angry danh sách liên kết

    các bạn ơi xem giúp mình đoạn code nay với chẳng hiểu sai ở đâu nưa?
    Code:
    #include <conio.h>
    #include <stdio.h>
    #include <string.h>
    #include <alloc.h>
    
    typedef struct pp
    {
    	char ht[25];
    	char qq[20];
    	int tuoi;
    	struct pp *next;
    } person;
    
    void main()
    {
    	clrscr();
    	char ht[25], qq[20];
    	int t;
    	person *pdau, *p, *p1;
    	//khoi tao danh sach lien ket
    	pdau = NULL;
    	//nhap mot so nguoi va chua vao bo nho duoi dang danh sach lien ket thuan
    	while(1)
    	{
    		printf("\nHo va ten: ");	gets(ht);
    		if(ht[0] == 0)
    			break;
    		if(pdau == NULL)
    		{
    			pdau = (person*)malloc(sizeof(person));
    			p = pdau;
    		}
    		else
    		{
    			p->next = (person*)malloc(sizeof(person));
    			p = p->next;
    		}
    		strcpy(p->ht, ht);
    		printf("\nQue quan: ");	gets(p->qq);
    		printf("\nTuoi: ");	scanf("%d%*c",&t); p->tuoi = t;
    		p->next = NULL;
    	}
    	//in danh sach moc noi ra man hinh
    	p = pdau;
    	while(p != NULL)
    	{
    		printf("\nHo ten %-25s Que %-20s Tuoi %d",p->ht, p->qq, p->tuoi);
    		p = p->next;
    	}
     	//tim kiem danh sach theo que quan
    	printf("\nTim kiem mot nguoi trong danh sach theo que quan");
    	p = pdau;
    	while(p != NULL)
    	{
    		printf("\nNhap que quan cua nguoi muon tim: "); gets(qq);
    		if(strcmp(p->qq, qq) == 0)
    			printf("\nHo ten %-25s Que %-20s Tuoi %d",p->ht, p->qq, p->tuoi);
    		p = p->next;
    	}
    	//xoa nguoi dau khoi danh sach
    	if(pdau != NULL)
    	{
    		p = pdau;
    		pdau = p->next;
    		free(p);
    	}
    	//bo sung mot nguoi vao cuoi danh sach
    	printf("\nBo sung mot nguoi vao cuoi danh sach");
    	if(pdau == NULL)
    	{
    		pdau = (person*)malloc(sizeof(person));
    		p = pdau;
    	}
    	else
    	(
    		p = pdau;
    		while(p->next != NULL)	p = p->next;
    		p->next = (person*)malloc(sizeof(person));
    		p = p->next;
    	}
    	printf("\nHo va ten: ");	gets(p->ht);
    	printf("\nQue quan: ");	gets(p->qq);
    	printf("\nTuoi: ");	scanf("%d%*c",&t); p->tuoi = t;
    	p->next = NULL;
    	//Chen mot nguoi vao giua danh sach
    	printf("\nChen them 1 nguoi vao truoc nguoi thu 2");
    	p = (person*)malloc(sizeof(person));
    	printf("\nHo va ten: ");	gets(p->ht);
    	printf("\nQue quan: ");	gets(p->qq);
    	printf("\nTuoi: ");	scanf("%d%*c",&t); p->tuoi = t;
    	p1 = pdau->next;
    	pdau->next = p;
    	p->next = p1;
    	//Dua danh sach moi ra man hinh
    	p = pdau;
    	while(p->next != NULL)
    	{
    		printf("\nHo ten %-25s Que %-20s Tuoi %d",p->ht, p->qq, p->tuoi);
    		p = p->next;
    	}
    	getch();
    }
    IF YOU ARE ALONE , I'LL BE YOUR SHADOW
    IF YOU WANT TO CRY, I'LL BE YOUR SHOULDER
    IF YOU NEED HAPPY, I'LL BE YOUR SMILE
    BUT ANYTIME YOU NEED A FRIEND
    IT JUST BE ME !!!

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mình đã sửa lỗi biên dịch cho bạn rồi đó. Bạn sửa tiếp đi nha.

    C Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3. #include <string.h>
    4. #include <alloc.h>
    5.  
    6. typedef struct pp
    7. {
    8.     char ht[25];
    9.     char qq[20];
    10.     int tuoi;
    11.     struct pp *next;
    12. } person;
    13.  
    14. void main()
    15. {
    16.     clrscr();
    17.     char ht[25], qq[20];
    18.     int t;
    19.     person *pdau, *p, *p1;
    20.     //khoi tao danh sach lien ket
    21.     pdau = NULL;
    22.     //nhap mot so nguoi va chua vao bo nho duoi dang danh sach lien ket thuan
    23.  
    24.     while (1)
    25.     {
    26.         printf("\nHo va ten: ");    gets(ht);
    27.         if(ht[0] == 0)
    28.             break;
    29.         if(pdau == NULL)
    30.         {
    31.             pdau = (person*)malloc(sizeof(person));
    32.             p = pdau;
    33.         }
    34.         else
    35.         {
    36.             p->next = (person*)malloc(sizeof(person));
    37.             p = p->next;
    38.         }
    39.         strcpy(p->ht, ht);
    40.         printf("\nQue quan: ");
    41.         gets(p->qq);
    42.         printf("\nTuoi: ");
    43.         scanf("%d%*c",&t);
    44.         p->tuoi = t;
    45.         p->next = NULL;
    46.     }
    47.     //in danh sach moc noi ra man hinh
    48.     p = pdau;
    49.     while(p != NULL)
    50.     {
    51.         printf("\nHo ten %-25s Que %-20s Tuoi %d",p->ht, p->qq, p->tuoi);
    52.         p = p->next;
    53.     }
    54.     //tim kiem danh sach theo que quan
    55.     printf("\nTim kiem mot nguoi trong danh sach theo que quan");
    56.     p = pdau;
    57.     while(p != NULL)
    58.     {
    59.         printf("\nNhap que quan cua nguoi muon tim: "); gets(qq);
    60.         if(strcmp(p->qq, qq) == 0)
    61.             printf("\nHo ten %-25s Que %-20s Tuoi %d",p->ht, p->qq, p->tuoi);
    62.         p = p->next;
    63.     }
    64.     //xoa nguoi dau khoi danh sach
    65.     if(pdau != NULL)
    66.     {
    67.         p = pdau;
    68.         pdau = p->next;
    69.         free(p);
    70.     }
    71.     //bo sung mot nguoi vao cuoi danh sach
    72.     printf("\nBo sung mot nguoi vao cuoi danh sach");
    73.     if(pdau == NULL)
    74.     {
    75.         pdau = (person*)malloc(sizeof(person));
    76.         p = pdau;
    77.     }
    78.     else
    79.     {
    80.         p = pdau;
    81.         while(p->next != NULL)  p = p->next;
    82.         p->next = (person*)malloc(sizeof(person));
    83.         p = p->next;
    84.     }
    85.     printf("\nHo va ten: ");    gets(p->ht);
    86.     printf("\nQue quan: "); gets(p->qq);
    87.     printf("\nTuoi: "); scanf("%d%*c",&t); p->tuoi = t;
    88.     p->next = NULL;
    89.     //Chen mot nguoi vao giua danh sach
    90.     printf("\nChen them 1 nguoi vao truoc nguoi thu 2");
    91.     p = (person*)malloc(sizeof(person));
    92.     printf("\nHo va ten: ");    gets(p->ht);
    93.     printf("\nQue quan: "); gets(p->qq);
    94.     printf("\nTuoi: "); scanf("%d%*c",&t); p->tuoi = t;
    95.     p1 = pdau->next;
    96.     pdau->next = p;
    97.     p->next = p1;
    98.     //Dua danh sach moi ra man hinh
    99.     p = pdau;
    100.     while(p->next != NULL)
    101.     {
    102.         printf("\nHo ten %-25s Que %-20s Tuoi %d",p->ht, p->qq, p->tuoi);
    103.         p = p->next;
    104.     }
    105.     getch();
    106. }

    PS : tại sao bạn cho while (1) ? ko lẽ bắt nhập mãi luôn à ?
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    08 2008
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    28

    mình test bằng borlanc thì nó báo là lỗi expected
    IF YOU ARE ALONE , I'LL BE YOUR SHADOW
    IF YOU WANT TO CRY, I'LL BE YOUR SHOULDER
    IF YOU NEED HAPPY, I'LL BE YOUR SMILE
    BUT ANYTIME YOU NEED A FRIEND
    IT JUST BE ME !!!

  4. #4
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Code đó còn bug mà , debug cho quen đi cậu !

  5. #5
    Ngày gia nhập
    09 2007
    Bài viết
    724

    bạn thử thay đổi điều kiện trong câu lệnh while(1) thử xem sao.(giả sử nhập họ tên là 0 chẳng hạn).
    Mà dùng xong con trỏ sao lại không có câu lệnh free nhỉ.

    ps: ngán mấy cái tất cả đều quăng vào hàm main quá. Sao không viết thành hàm con cho nó dễ chụi hơn.

  6. #6
    Ngày gia nhập
    08 2008
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    28

    Mặc định danh sách liên kết

    Mình đã debug rồi nhưng vẫn ko tìm đựoc chỗ sai, thôi để thứ 6 này đi học mình hỏi thầy giáo vậy
    IF YOU ARE ALONE , I'LL BE YOUR SHADOW
    IF YOU WANT TO CRY, I'LL BE YOUR SHOULDER
    IF YOU NEED HAPPY, I'LL BE YOUR SMILE
    BUT ANYTIME YOU NEED A FRIEND
    IT JUST BE ME !!!

Các đề tài tương tự

  1. Hướng dẫn Biểu diễn thích hợp bằng danh sách liên kết đơn hoặc danh sách liên kết kép
    Gửi bởi maitrung trong diễn đàn Thủ thuật, Tutorials CTDL & Giải thuật
    Trả lời: 3
    Bài viết cuối: 04-08-2012, 08:01 PM
  2. Cấu trúc dữ liệu Cách tạo danh sách liên kết mới từ danh sách liên kết đã cho như thế nào?
    Gửi bởi giacmo1612 trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 2
    Bài viết cuối: 30-11-2011, 04:43 PM
  3. Nhập và xuất danh sách liên kết lồng danh sách liên kết?
    Gửi bởi nvluong_it trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 22-04-2011, 11:30 AM
  4. Lập trình C Danh sách liên kết - Xử lý danh sách liên kết trong lập trình C
    Gửi bởi phucduan trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 08-11-2010, 10:25 PM
  5. Danh sách liên kết, code nhập danh sách sinh viên có lỗi làm sao sửa?
    Gửi bởi acmilan trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 10-04-2009, 08:24 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn