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

Đề tài: Không xuất được các phần tử ra màn hình

  1. #1
    Ngày gia nhập
    09 2011
    Nơi ở
    Registry
    Bài viết
    43

    Mặc định Không xuất được các phần tử ra màn hình

    Mình đang làm bài tìm hợp , giao của 2 tập hợp bằng danh sách liên kết nhưng khi nhập vào số lượng phần tử vào danh sách mà khi xuất ra thì ko được, mong các a chị giúp đỡ ạ! Bài làm mình gửi kèm bên dưới, xem xong chỉ cho mình biết sai chỗ nào được ko? thanks nhiều
    C++ Code:
    1. #include <iostream.h>
    2. #include <iomanip.h>
    3. #include <stdlib.h>
    4. /////////////////////
    5. struct Taphop
    6. {
    7.     int info;
    8.     Taphop *link;
    9. };
    10. Taphop *first;
    11. Taphop *A,*B,*C;
    12. int n,m;
    13. /////////////////////
    14. int Menu();
    15. void Run(int task);
    16. void Init();
    17. void Add(Taphop *first, int x);
    18. void Input(Taphop *&A);
    19. void Xuat(Taphop *&first);
    20. void Hop(Taphop *A,Taphop *B,Taphop *C);
    21. void Giao(Taphop *A,Taphop *B,Taphop *&C);
    22. /////////////////////
    23. /////////////////////
    24. void main()
    25. {
    26.     Init();
    27.     int task;
    28.     while(task=Menu())
    29.         Run(task);
    30. }
    31. /////////////////////
    32. int Menu()
    33. {
    34.     int task;
    35.     cout <<"\t\tBai 16";
    36.     cout <<"\n\n\tDANH SACH LIEN KET-TAP HOP";
    37.     cout <<"\n.....................";
    38.     cout <<"\n\n1.Tim tap hop la hop cua 2 ds!";
    39.     cout <<"\n\n2.Tim tap hop la giao cua 2 ds!";
    40.     cout <<"\n\n3.Xuat ds chua phan bu cua 2 ds!";
    41.     cout <<"\n\n0.Thoat!";
    42.     cout <<"\n.....................";
    43.     cout <<"\n\n\tBan chon:";
    44.     cin >>task;
    45.     return task;
    46.  
    47. }
    48. void Run(int task)
    49. {
    50.    
    51.     switch(task)
    52.     {
    53.     case 1:
    54.         cout <<"\nNhap danh sach A: ";Input(A);
    55.         cout <<"\nNhap danh sach B: ";Input(B);
    56.         cout <<"\n\tDanh sach A: ";Xuat(A);
    57.         cout <<"\n\tDanh sach B: ";Xuat(B);
    58.         Hop(A,B,C);
    59.         break;
    60.     case 2:
    61.         Giao(A,B,C);
    62.         break;
    63.     case 3:
    64.        
    65.         break;
    66.     }
    67.     cin.get();cin.get();
    68.     system("cls");
    69. }
    70. /////////////////////
    71. void Init()
    72. {
    73.     A=B=C=NULL;
    74.    
    75. }
    76.  
    77. void Add(Taphop *first, int x)
    78. {
    79.     Taphop *p,*q,*a;
    80.     a=new Taphop;
    81.     a->info=x;
    82.     a->link=NULL;
    83.     if(first==NULL)
    84.         first=a;
    85.     else
    86.     {
    87.         q=NULL;
    88.         p=first;
    89.         while(p->link!=NULL && p->info < x)
    90.         {
    91.             q=p;
    92.             q=q->link;
    93.         }
    94.         if(q==NULL)
    95.         {
    96.             a->link=first;
    97.             first=a;
    98.         }
    99.         else
    100.         {
    101.             q->link=a;
    102.             a->link=p;
    103.         }
    104.     }
    105.    
    106. }
    107. void Input(Taphop *&A)
    108. {
    109.    
    110.     int i,n,x;
    111.     cout <<"\nNhap so phan tu : "<<endl;
    112.     cin >>n;
    113.     for ( i=0; i<n; i++)
    114.     {
    115.         cout <<"\nNhap phan tu thu "<<i<<" : ";
    116.         cin >>x;
    117.         Add(A,x);
    118.     }
    119.    
    120.    
    121. }
    122.  
    123. void Xuat(Taphop *&first)
    124. {
    125.     Taphop *p=first;
    126.     while(p!=NULL)
    127.     {
    128.         cout <<setw(4)<<p->info;
    129.         p=p->link;
    130.     }
    131. }
    132. void Hop(Taphop *A,Taphop *B,Taphop *C)
    133. {
    134.     while(A!=NULL && B!=NULL)
    135.     {
    136.         if(A->info < B->info)
    137.         {
    138.             Add(C,A->info);
    139.             A=A->link;
    140.         }
    141.         else if(A->info > B->info)
    142.         {
    143.             Add(C,B->info);
    144.             B=B->link;
    145.  
    146.         }
    147.     }
    148.     if(A!=NULL)
    149.     {
    150.         while(A!=NULL)
    151.         {
    152.             Add(C,A->info);
    153.             A=A->link;
    154.         }
    155.     }
    156.     if(B!=NULL)
    157.     {
    158.         while(B!=NULL)
    159.         {
    160.             Add(C,B->info);
    161.             B=B->link;
    162.         }
    163.     }
    164. }
    165. void Giao(Taphop *A,Taphop *B,Taphop *&C)
    166. {
    167.     while(A!=NULL && B!=NULL)
    168.     {
    169.         if(A->info < B->info)
    170.         {
    171.             while(A->info != B->info && A!=NULL)
    172.                 A=A->link;
    173.             if(A!=NULL)
    174.             {
    175.                 Add(C,B->info);
    176.                 B=B->link;
    177.                 A=A->link;
    178.             }
    179.         }
    180.         else if(A->info > B->info)
    181.         {
    182.             while(B->info != A->info && B!=NULL)
    183.                 B=B->link;
    184.             if(B!=NULL)
    185.             {
    186.                 Add(C,A->info);
    187.                 B=B->link;
    188.                 A=A->link;
    189.             }
    190.  
    191.         }
    192.         else
    193.         {
    194.             Add(C,A->info);
    195.             A=A->link;
    196.             B=B->link;
    197.         }
    198.        
    199.     }
    200.    
    201. }
    Attached Files Attached Files
    Đã được chỉnh sửa lần cuối bởi nhatminh266 : 24-10-2011 lúc 12:02 AM.
    C++ Code:
    1. int BanHoc=1, BanBiet=10;
    2.     if(BanHoc==0)
    3.         cout <<"Ban nen di hoc!";
    4.     else
    5.         if(BanBiet==10)
    6.             cout <<"Ban qua pro!";

  2. #2
    Ngày gia nhập
    09 2011
    Nơi ở
    Registry
    Bài viết
    43

    sao không có ai giúp em hết vậy? Mọi người đành pó tay sao?
    C++ Code:
    1. int BanHoc=1, BanBiet=10;
    2.     if(BanHoc==0)
    3.         cout <<"Ban nen di hoc!";
    4.     else
    5.         if(BanBiet==10)
    6.             cout <<"Ban qua pro!";

  3. #3
    Ngày gia nhập
    10 2010
    Bài viết
    43

    Lỗi ngay hàm Add() cách truyền first là truyền trị con trỏ, a,p,q là các biến cục bộ trong hàm Add thôi.
    - Mà bạn khai báo biến đừng để trùng tên khó đọc lắm.

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

  1. Xuất 1 kiểu dữ liệu là phân số mà không cần phải gọi qua hàm xuất trong class ?
    Gửi bởi giacmo1612 trong diễn đàn Nhập môn lập trình Java
    Trả lời: 4
    Bài viết cuối: 24-03-2012, 02:38 PM
  2. Trả lời: 0
    Bài viết cuối: 08-09-2011, 10:14 PM
  3. Bài tập C++ nhập mảng gồm n (5<n<10) phần tử, xuất mảng và xuất ra các số nguyên tố của mảng
    Gửi bởi viettan trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 08-01-2011, 10:23 PM
  4. Hỏi về tần xuất xuất hiện của một phần tử trong mảng
    Gửi bởi A10932 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 01-04-2008, 05:00 PM
  5. bài toán tìm số lần xuất hiện các phần tử xuất hiện trong 1 chuỗi
    Gửi bởi tuan_anhhhh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 11-03-2008, 09:30 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