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

Đề tài: DSLK đơn các hàm sắp xếp, tìm kiếm không chạy được

  1. #1
    Ngày gia nhập
    03 2011
    Nơi ở
    Hà Nội
    Bài viết
    89

    Mặc định DSLK đơn các hàm sắp xếp, tìm kiếm không chạy được

    em không hiểu máy không báo lỗi nhưng khi em gọi hàm sắp xếp và tìm kiếm ra thì nó không chạy và đây là code
    C++ Code:
    1. #include<iostream.h>
    2. #include<iomanip.h>
    3. #include<conio.h>
    4. #include<string.h>
    5. #include<stdio.h>
    6. #include<stdlib.h>
    7. class hang
    8. {
    9.     char ten[20];
    10.     int k;
    11. public:
    12.     void nhap()
    13.         {
    14.           cout<<"\n nhap ten mat hang: ";
    15.           cin.get(ten,20); cin.ignore();
    16.           cout<<"\n nhap so luong:";
    17.           cin>>k; cin.ignore();
    18.         }
    19.     friend class queue;
    20.     friend class link;
    21. };
    22. class node
    23. {
    24.     hang data;
    25.     node *next;
    26.     friend class queue;
    27.     friend class link;
    28. };
    29. class queue
    30. {
    31. protected:
    32.     node *dau;
    33.     node *cuoi;
    34.    public:
    35.     //static tieude()
    36.     queue() {dau = NULL;}
    37.      ~queue()
    38.       {
    39.         dau = NULL;
    40.         cuoi=NULL;
    41.       }
    42.         bool empty()
    43.       {
    44.         if(dau == NULL)
    45.             return true;
    46.          else
    47.             return false;
    48.       }
    49.       void push(hang d)
    50.       {
    51.         node *p = new node;
    52.         strcpy(p->data.ten,d.ten);
    53.         p->data.k=d.k;
    54.         p->next=NULL;
    55.          if(dau == NULL)
    56.             {
    57.               dau=p;
    58.               cuoi=dau;
    59.             }  
    60.          else
    61.          {
    62.             cuoi->next = p;
    63.             cuoi = p;
    64.          }
    65.       }
    66.       void pop()
    67.       {
    68.         if(!empty())
    69.         {
    70.             node *p = dau;
    71.             dau = dau->next;
    72.             p->next = NULL;
    73.             delete p;
    74.         }
    75.         else
    76.            cout<<"\n rong";
    77.       }
    78.           void show()
    79.       {
    80.         node *p = dau;
    81.         while(p!=NULL)
    82.         {
    83.             cout<<setw(15)<<p->data.ten<<setw(10)<<p->data.k<<endl;
    84.             p = p ->next;
    85.         }
    86.         cout<<endl;
    87.       }
    88.            
    89. };
    90. class link:public queue
    91. {
    92.     hang tg;
    93. public:
    94.     void timkiem1(char name[20])
    95.         {
    96.            node *p=dau;
    97.            while(p!=NULL)
    98.                {
    99.                  if(strcmp(p->data.ten,name)==0)
    100.                      cout<<setw(15)<<p->data.ten<<setw(5)<<p->data.k<<endl;
    101.                  else
    102.                      cout<<"\n khong co mat hang nay trong kho";
    103.                }
    104.         }
    105.     void timkiem2(int b)
    106.         {
    107.            node *p=dau;
    108.            while(p!=NULL)
    109.                {
    110.                  if(p->data.k==b)
    111.                  {
    112.                      cout<<setw(15)<<p->data.ten<<setw(5)<<p->data.k<<endl;
    113.                      break;
    114.                  }
    115.                  else
    116.                      cout<<"\n khong co mat hang nay trong kho";
    117.                }
    118.         }
    119.     void sapxep1()
    120.         {
    121.           node *p,*q;
    122.           for(p=dau;p!=NULL;p->next)
    123.               for(q=p->next;q!=NULL;q->next)
    124.                   if(p->data.ten<q->data.ten)
    125.                   {
    126.                       tg=p->data;
    127.                       p->data=q->data;
    128.                       q->data=tg;
    129.                   }
    130.         }
    131.     void sapxep2()
    132.         {
    133.           node *p,*q;
    134.           for(p=dau;p!=NULL;p->next)
    135.               for(q=p->next;q!=NULL;q->next)
    136.                   if(p->data.k<q->data.k)
    137.                   {
    138.                       tg=p->data;
    139.                       p->data=q->data;
    140.                       q->data=tg;
    141.                   }
    142.         }
    143. };
    144. void main()
    145. {
    146.    link a;
    147.    hang b;
    148.    char c[20];
    149.   printf("\n chao mung ban da den voi cua hang cua chung toi");
    150.   getch();
    151.   system("cls");
    152.   cout<<endl;
    153.  
    154.  for(int i=0;i<3;i++)
    155.  {
    156.      b.nhap();
    157.      a.push(b);
    158.  }
    159. a.show();
    160.  cout<<"\n nhap ten can tim:";
    161.  cin.get(c,20);
    162.  a.show();
    163.  a.timkiem1(c);*/
    164.  int d;
    165.  cout<<"\n nhap vao so luong can tim: ";
    166.  cin>>d;
    167.  a.timkiem2(d);
    168.  a.sapxep1();
    169.  a.show();
    170.   getch();
    171. }

  2. #2
    Ngày gia nhập
    04 2008
    Nơi ở
    Hue city
    Bài viết
    40

    Không biết bạn dùng IDE gì chứ mình dùng Turbo C nó báo lỗi tùm lum à.
    Hình như C/C++ không có kiểu bool. :|
    TINKHOAHOC.BIZ - Diễn đàn sinh viên CNTT ĐHKH Huế

  3. #3
    Ngày gia nhập
    03 2011
    Nơi ở
    Hà Nội
    Bài viết
    89

    Trích dẫn Nguyên bản được gửi bởi loicuoi Xem bài viết
    Không biết bạn dùng IDE gì chứ mình dùng Turbo C nó báo lỗi tùm lum à.
    Hình như C/C++ không có kiểu bool. :|
    mình chạy bằng Visual C++ và DEV C nó không báo lỗi mà bạn trong tubo C bool thay bằng boolean

  4. #4
    Ngày gia nhập
    03 2011
    Nơi ở
    Hà Nội
    Bài viết
    89

    ok mình đã tìm ra lỗi hàm tìm kiếm thiếu cái thằng p=p->next chưa tăng cho nó thì sao mà chạy được chứ
    còn thằng sắp xếp nữa mình tìm mãi không ra củ chuối quá

  5. #5
    Ngày gia nhập
    04 2010
    Bài viết
    69

    Trích dẫn Nguyên bản được gửi bởi fithou91192 Xem bài viết
    ok mình đã tìm ra lỗi hàm tìm kiếm thiếu cái thằng p=p->next chưa tăng cho nó thì sao mà chạy được chứ
    còn thằng sắp xếp nữa mình tìm mãi không ra củ chuối quá
    tương tự bạn coi lại câu lệnh cuối trong các dãy for nha
    C++ Code:
    1. void sapxep1()
    2.         {
    3.           node *p,*q;
    4.           for(p=dau;p!=NULL;p->next)                       // p=p->net
    5.               for(q=p->next;q!=NULL;q->next)             //
    6.                   if(p->data.ten<q->data.ten)
    7.                   {
    8.                       tg=p->data;
    9.                       p->data=q->data;
    10.                       q->data=tg;
    11.                   }
    12.         }
    13.     void sapxep2()
    14.         {
    15.           node *p,*q;
    16.           for(p=dau;p!=NULL;p->next)                     //p=p->next
    17.               for(q=p->next;q!=NULL;q->next)           //
    18.                   if(p->data.k<q->data.k)
    19.                   {
    20.                       tg=p->data;
    21.                       p->data=q->data;
    22.                       q->data=tg;
    23.                   }
    24.         }

  6. #6
    Ngày gia nhập
    03 2011
    Nơi ở
    Hà Nội
    Bài viết
    89

    Mặc định DSLK đơn các hàm sắp xếp, tìm kiếm không chạy được

    Trích dẫn Nguyên bản được gửi bởi kuhoang0512 Xem bài viết
    tương tự bạn coi lại câu lệnh cuối trong các dãy for nha
    C++ Code:
    1. void sapxep1()
    2.         {
    3.           node *p,*q;
    4.           for(p=dau;p!=NULL;p->next)                       // p=p->net
    5.               for(q=p->next;q!=NULL;q->next)             //
    6.                   if(p->data.ten<q->data.ten)
    7.                   {
    8.                       tg=p->data;
    9.                       p->data=q->data;
    10.                       q->data=tg;
    11.                   }
    12.         }
    13.     void sapxep2()
    14.         {
    15.           node *p,*q;
    16.           for(p=dau;p!=NULL;p->next)                     //p=p->next
    17.               for(q=p->next;q!=NULL;q->next)           //
    18.                   if(p->data.k<q->data.k)
    19.                   {
    20.                       tg=p->data;
    21.                       p->data=q->data;
    22.                       q->data=tg;
    23.                   }
    24.         }
    uhm nhỉ mắt với chả mũi nhưng dù sao cũng là do mình cùi bắp quá
    thanh bạn@kuhoang0512 nha

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

  1. DSLK các giải thuật sắp xếp và tìm kiếm
    Gửi bởi soda_chanhmuoi trong diễn đàn Thủ thuật, Tutorials CTDL & Giải thuật
    Trả lời: 6
    Bài viết cuối: 15-11-2011, 10:31 AM
  2. code không lỗi nhưng chạy bị lỗi[DSLK,khi nhập vào 2 số là bị stop]
    Gửi bởi fithou91192 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 04-11-2011, 07:33 AM
  3. Kỹ thuật C Bài tập DSLK, mọi người test và cho mình xin ý kiến
    Gửi bởi nguoirung1.6 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: 03-12-2010, 08:45 AM
  4. Cộng trừ đa thức bằng DSLK đơn trên C. Hàm load và rút gọn không chạy được?
    Gửi bởi brian56 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 5
    Bài viết cuối: 22-07-2010, 08:51 AM
  5. Thắc mắc về hàm tìm kiếm DSLK đơn
    Gửi bởi shumo 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: 03-06-2010, 05:50 AM

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