Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: Chương trình minh họa bubble sort, bị lỗi?

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    5

    Angry Chương trình minh họa bubble sort, bị lỗi?

    C Code:
    1. /* chuong trinh minh hoa bubble sort */
    2. #include <stdio.h>
    3. #include <conio.h>
    4. #include <stdlib.h>
    5.  
    6. #define MAXLIST 10
    7. #define TRUE 1
    8. #define FALSE 0
    9. // khai bao danh sach ke co toi da MAXLIST so nguyen int nodes[MAXLIST]//
    10. void bubblesort(int nodes[], int n)
    11. {
    12.      int temp, i, j;
    13.      int codoicho=TRUE;
    14.      // vong lap kiem soat so lan duyet //
    15.      for(i=1;i<n && codoicho==TRUE;i++)
    16.      {
    17.                  codoicho=FALSE;
    18.                  for(j=i+1;j<n-1;j++)
    19.                  if(nodes[j]>nodes[j+1])
    20.                  {
    21.                     codoicho=TRUE;
    22.                     temp=nodes[j];
    23.                     nodes[j]=nodes[j+1];
    24.                     nodes[j+1]=temp;
    25.                 }
    26.       }
    27. }
    28. int main()
    29. {
    30.     int chucnang;int nodes[MAXLIST];
    31.     char c;
    32.     do
    33.     {
    34.         // menu chinh cua chuong trinh//
    35.         printf(" \n\n BUBBLE SORT ");
    36.         printf("\n\n Cac chuc nang chinh cua chuong trinh :\n");
    37.         printf(" 1. Tao danh sach voi d so ngau nhien: \n",MAXLIST);
    38.         printf(" 2. Bubble sort \n");
    39.         printf(" 3. Duyet danh sach \n");
    40.         printf(" 0. Ket thuc chuong trinh \n");
    41.         printf(" Chuc nang ban chon : ");
    42.         scanf("%d",&chucnang);
    43.         switch(chucnang)
    44.         {
    45.             case 1:
    46.                 {
    47.                     int a[MAXLIST];
    48.                     for(int i=0;i<MAXLIST;i++)
    49.                     {printf(" Nhap a[%d]:",i);
    50.                     scanf("%d",&a[i]);}
    51.                     printf(" Da tao xong danh sach ");
    52.                     break;
    53.                 }
    54.             case 2:
    55.                 {
    56.                     void bubblesort(int nodes[], int n);
    57.                     printf("\n da sap xep xong danh sach theo giai thuat bubble sort ");
    58.                     break;
    59.                 }
    60.             case 3:
    61.                 {
    62.                     printf("\n Duyet danh sach :\n");
    63.                     for(int i=0;i<MAXLIST;i++)
    64.                     printf("%4d", nodes[i]);
    65.                     break;
    66.                 }
    67.         }
    68.     }while(chucnang!=0);
    69. }

    * Bạn xem lại cách đặt tiêu đề và bỏ code vào tag code khi viết bài trên diễn đàn. -QH-
    Đã được chỉnh sửa lần cuối bởi lamvantu : 29-03-2009 lúc 05:25 PM.

  2. #2
    Ngày gia nhập
    09 2008
    Bài viết
    33

    Cho mình hỏi biến int codoicho=TRUE; để làm gì vậy bạn ?


    Bạn ghi sai giải thuật bubble
    C Code:
    1. for(i=1;i<n && codoicho==TRUE;i++)    // bạn sai ở đây
    2. {
    3.     codoicho=FALSE;
    4.     for(j=i+1;j<n-1;j++)             // sai ở đây !
    5.         if(nodes[j]>nodes[j+1])
    6.         {
    7.             codoicho=TRUE;
    8.             temp=nodes[j];
    9.             nodes[j]=nodes[j+1];
    10.             nodes[j+1]=temp;
    11.         }
    12. }

    Giải thuật bubble là :
    C Code:
    1. for(i=0;i<n-1;i++)
    2.     for(j=i+1;j<n;j++)
    Đã được chỉnh sửa lần cuối bởi basilisk : 29-03-2009 lúc 07:02 PM.

  3. #3
    Ngày gia nhập
    09 2008
    Bài viết
    33

    Mình đã làm lại bài của bạn đây !

    C Code:
    1. #include<stdio.h>
    2. #include<stdlib.h>
    3. #define MAXLIST 5
    4. void bubblesort(int nodes[], int n)
    5. {
    6.      int temp, i, j;
    7.      for(i=0; i<n-1; i++)
    8.         for(j=i+1; j<n; j++)
    9.             if(nodes[j] > nodes[j+1])
    10.             {
    11.                 temp        =   nodes[j];
    12.                 nodes[j]    =   nodes[j+1];
    13.                 nodes[j+1]  =   temp;
    14.             }
    15. }
    16. void main()
    17. {
    18.     int i, chucnang, nodes[MAXLIST], a[MAXLIST];
    19.     do
    20.     {
    21.         printf("\n\nBUBBLE SORT");
    22.         printf("\n\n Cac chuc nang chinh cua chuong trinh :\n");
    23.         printf("1. Tao danh sach voi d so ngau nhien :\n",MAXLIST);
    24.         printf("2. Bubble sort\n");
    25.         printf("3. Duyet danh sach\n");
    26.         printf("0. Ket thuc chuong trinh\n");
    27.         printf("Chuc nang ban chon : ");
    28.         scanf("%d",&chucnang);
    29.         switch(chucnang)
    30.         {
    31.             case 1:
    32.                 {
    33.                     for(i=0; i<MAXLIST; i++)
    34.                     {
    35.                         printf("Nhap a[%d] = ",i);
    36.                         scanf("%d",&a[i]);
    37.                     }
    38.                     printf("Da tao xong danh sach");
    39.                     break;
    40.                 }
    41.             case 2:
    42.                 {
    43.                     bubblesort(nodes,MAXLIST);    /////////////////////
    44.                     printf("\nDa sap xep xong danh sach theo giai thuat bubble sort");
    45.                     break;
    46.                 }
    47.             case 3:
    48.                 {
    49.                     printf("\nDuyet danh sach :\n");
    50.                     for(i=0; i<MAXLIST; i++)
    51.                         printf("%4d", a[i]);   /////////////////////
    52.                     break;
    53.                 }
    54.         }
    55.     }while(chucnang != 0);
    56. }
    Đã được chỉnh sửa lần cuối bởi basilisk : 29-03-2009 lúc 07:59 PM.

  4. #4
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Về mặt cơ bản có 2 Bubble sort như này. Sort min to max.

    C Code:
    1. void bubblesort(int a[], int n)
    2. {
    3.      int i,j;
    4.      for (i=0; i<n-1; i++)
    5.           for (j=0; j<n-i-1; j++)
    6.                if (a[j]>a[j+1])
    7.                {
    8.                     int tmp = a[j];
    9.                     a[j] = a[j+1];
    10.                     a[j+1] = tmp;
    11.                }
    12. }

    C Code:
    1. void bubblesort(int a[], int n)
    2. {
    3.      int i,j;
    4.      for (i=0; i<n-1; i++)
    5.           for (j=n-1; j>i; j++)
    6.                if (a[j]<a[j-1])
    7.                {
    8.                     int tmp = a[j];
    9.                     a[j] = a[j-1];
    10.                     a[j-1] = tmp;
    11.                }
    12. }

  5. #5
    Ngày gia nhập
    03 2009
    Bài viết
    5

    Arrow Chương trình minh họa bubble sort, bị lỗi?

    cam on ban, minh sua no duoc rui, co cai bai nay mong ban giup do minh nha

  6. #6
    Ngày gia nhập
    03 2009
    Bài viết
    523

    Mặc định Chương trình minh họa bubble sort, bị lỗi?

    cho em hỏi mấy cái dấu này ///////// có ý nghĩa gì thế?

  7. #7
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Để đánh dấu chỗ sai khác giữa 2 bài ấy mà !

  8. #8
    Ngày gia nhập
    03 2009
    Bài viết
    523

    bài của anh bailisk ko hiện kết quả
    có vài chỗ em chưa hiểu ở bài của anh bailisk
    C Code:
    1. case 2:
    2.                 {
    3.                     bubblesort(nodes,MAXLIST);    /////////////////////
    4.                     printf("\nDa sap xep xong danh sach theo giai thuat bubble sort");
    5.                     break;
    chưa nhập giá trị cho mảng nodes[] mà?

    sao em sai vậy?
    C Code:
    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <time.h>
    4. #include <conio.h>
    5. #define     n    5
    6. void bubblesort(int a[], int m);
    7. void bubblesort(int a[], int m)
    8. {int temp, i, j;    for(i = 0; i < m - 1; i++)  for(j = i + 1; j < m; j++)
    9. if (a[j] > a[j + 1])
    10.             {temp = a[j];       a[j] = a[j + 1];    a[j + 1] =  temp;}}
    11. void main()
    12. {int i, chucnang, a[n];
    13.     do  {printf("\n\nBUBBLE SORT");
    14.         printf("\n Cac chuc nang chinh cua chuong trinh :\n");
    15.         printf("1. Tao danh sach voi %d so ngau nhien:  \n",  n);
    16.         printf("2. Bubble sort  \n");
    17.         printf("3. Duyet danh sach  \n");
    18.         printf("0. Ket thuc chuong trinh  \n");
    19.         printf("Chuc nang ban chon : ");
    20.         scanf("%d",&chucnang);
    21.         switch(chucnang)
    22. {case 1:    {for (i = 0; i < n; i++)        a[i] = rand()%201 - 100;}
    23. for (i = 0;  i < n;  i++)       {printf (“a[%d] = %d  \n”, i, a[i]);}
    24. printf("Da tao xong danh sach");    break;}
    25. case 2:     {bubblesort(a, n);
    26.                     printf("\n Da sap xep xong danh sach theo giai thuat bubble sort");     break;}
    27. case 3:     {printf("\n Duyet danh sach :\n");
    28.                     for (i = 0; i < n; i++)     printf("%4d", a[i]);    break;}
    29. }}  while(chucnang != 0);  
    30. getch();}
    sao phải ghi 1., 2., 3. , sau mỗi số sao phải có dấu . ?
    Đã được chỉnh sửa lần cuối bởi chuong01 : 31-03-2009 lúc 12:04 PM.

  9. #9
    Ngày gia nhập
    03 2009
    Bài viết
    523

    bạn này spam hả? diễn đàn chỉ giúp đỡ newbie với bài toán nhỏ thôi. Bài toán lớn thì hình như ko ai rảnh làm giùm bạn từ a → z. Bạn nhờ làm giùm bài tập à?

  10. #10
    Ngày gia nhập
    03 2009
    Bài viết
    523

    mấy bài này làm gì có chuyện mới học ?

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

  1. Bài tập C Giải thuật Bubble Sort , Insertion Sort
    Gửi bởi cts2x trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 28-12-2013, 11:31 PM
  2. Bài tập C++ Sắp xếp tên bằng bubble sort
    Gửi bởi vicz_0311 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 9
    Bài viết cuối: 19-10-2011, 05:37 PM
  3. Lập trình C Cách hoạt động của thuật toán Selection Sort và Bubble Sort như thế nào?
    Gửi bởi kuin0903 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: 26-07-2011, 10:39 AM
  4. Cần hỗ trợ về Bubble Sort (Săp xếp nổi bọt)
    Gửi bởi NgocTuanz trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 5
    Bài viết cuối: 10-05-2010, 08:41 PM
  5. Các thuật toán sắp xếp mảng | Bubble sort, Shak sort, Insertion sort, Selection, ...
    Gửi bởi kids 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: 11-04-2009, 10:05 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