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

Đề tài: Thuật toán sắp xếp cac phan tu tang dan

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

    Mặc định Thuật toán sắp xếp cac phan tu tang dan

    đây là đề bài tập: xin lỗi vì không có dấu

    nhap vao mot man gom n phan tu nguyen (1<=n<=15)và mot so nguyen x:

    caua: nhung phan tu nao (in ra ca gia tri va vi tri cua phan tu do)la uoc so cua x?

    caub:don nhung phan tu la uoc so cua x ve cuoi mang.

    sap xep cac phan tu khong phia la uoc so cua x theo thu tu tang dan (giu nguyen vi tri cac phan tu la uoc so cua x)


    C Code:
    1. //khai bao cac thu vien
    2. #include <stdio.h>
    3. #include <conio.h>
    4. #include <math.h>
    5.  
    6. //khai bao cac hang so
    7. #define MAX 15
    8. #define MIN 1
    9.  
    10. //khai bao cac tham chieu ham (protype)
    11. void dsnhap(int a[], int &n);
    12. void dsin(const int a[],int n);
    13. void dscaua(const int a[],int n,int x);
    14. void dscaub(const int a[],int n,int x);
    15. void dscauc(const int a[],int n,int x);
    16. int nhapso();
    17. void hoanvi(int &x,int &y);
    18.  
    19. void caud(int a[],int x)
    20.  
    21. /////////////
    22. void main()
    23. {
    24.     int a[MAX],n,x;
    25.     dsnhap(a,n);
    26.     dsin(a,n);
    27.     x=nhapso();
    28.     dscaua(a,n,x);
    29.     dscaub(a,n,x);
    30.     dsin(a,n);
    31.     dscauc(a,n,x);
    32.     dsin(a,n);
    33.     getch();
    34. }
    35.  
    36. //cai dat
    37. //tu cai ham dsnhap, dsin, nhapso
    38. //danh sach nhap
    39. void dsnhap(int a[], int &n)
    40. {
    41.     for( ; ; )
    42.     {
    43.         printf("So phan tu can nhao (tu 1den 15) \n");
    44.         scanf("%d, &n");
    45.         if (n>=MIN && n<=MAX)
    46.         break;
    47.     }
    48.             for(int i=0;i<n;i++)
    49.             {
    50.                 printf("nhap phan tu a[%d]=",i);
    51.                 scanf("%d",&a[i]);
    52.             }
    53.  
    54. }
    55.  
    56. //danh sach in
    57. void dsin(const int a[],int n,int x)
    58. {
    59.     printf ("\n");
    60.         for (int i=0;i<0;i++)
    61.             if(a[i]!=0 && x % a[i]==0)
    62.             {
    63.                 printf(" % ",a[i]);
    64.             }
    65.             else
    66.             {
    67.                 printf("%d",a[i]);
    68.             }
    69. }
    70. //nhap so
    71. int nhapso()
    72. {
    73.     int x;
    74.     scanf("%d",&x);
    75.     return x;
    76. }
    77.  
    78. void dscaua(const a[],int n,int x)
    79. {
    80.     int dem_us = 0;
    81.     for (int i=0;i<0;i++)
    82.         if(a[i]!=0 && x%a[i]==0)
    83.         {
    84.             dem_us++;
    85.             printf("so %d (vi tri %d) la uoc so cua %d",a[i],i+1,x);
    86.         }
    87.  
    88.         if(dem_us==0)
    89.             printf("khong co phan tu nao la uoc so cua %d",x);
    90. }
    91.  
    92. void hoanvi(int &x , int &y) //swap
    93. {
    94.     int t=x;x=y;y=t;
    95. }
    96.  
    97. void dscaub(int a[],int n,int x)
    98. {
    99.     int left=0,right=n-1;
    100.     while(left<right)
    101.     {
    102.         if (a[left]!=0 && x %a[left]==0)
    103.             if(a[right]==0 || x %a[right] !=0)
    104.                 hoanvi(a[left],a[right]);
    105.             else
    106.                 right--;
    107.             else
    108.                 left++;
    109.     }
    110. }
    111.  
    112. void dscauc(int a[],int n,int x)
    113. {
    114.     //BUBBLE SORT ("noi bat")
    115.     for (int i=0;i<n-1;i++)
    116.         for (int j=i+1;j<n;j++)
    117.             if((a[i]==0||x %a[i]!=0)&&
    118.                 (a[j]==0||x % a[j]!=0)&&
    119.                 (a[i]>a[j]))
    120.                 hoanvi(a[i],a[j]);
    121. }
    122. }

    ai đó giúp mình sữa lỗi để cho nó chạy được không, đang cần gắp lắm, hix, làm cả buổi trời mà không ra
    Đã được chỉnh sửa lần cuối bởi thaivinhhuy : 13-04-2007 lúc 09:16 PM.

  2. #2
    Ngày gia nhập
    07 2006
    Bài viết
    166

    Gõ chữ không dấu + viết sai chính tả linh tinh cả + để trong tag code mà không thụt đầu dòng gì cả => có muốn giúp cũng ngán
    Đã được chỉnh sửa lần cuối bởi vinhie47 : 13-04-2007 lúc 11:17 PM.

  3. #3
    Ngày gia nhập
    02 2007
    Bài viết
    27

    Code:
    void dsin(const int a[],int n);
    void dscaua(const int a[],int n,int x);
    void dscaub(const int a[],int n,int x);
    void dscauc(const int a[],int n,int x);
    Khỏi cần const int a[] mà chỉ cần int a[] cũng đâu có sao đâu bạn!

    Code:
    void dsnhap(int a[], int &n)
    {
    for( ; ; )
    {
    printf("So phan tu can nhao (tu 1den 15) \n");
    scanf("%d, &n");
    chỗ scanf phải là "%d",&n chứ nhỉ?

    Bạn có thể bỏ quách hàm int nhapso() đi cho khỏe. Sao không nhập X trong hàm dsnhap() luôn?
    Code:
    void dshap(int a[], int &n, int &x)
    {
        //Nhập mảng
          .....
        printf("\nNhap X: );
        scanf("%d",&x);
    }
    Bạn viết cái hàm void dsin(const int a[],int n); thực hiện việc gì?
    Nếu muốn in ra mảng đã nhập thì nên sửa lại thành
    Code:
    void dsXuat(int a[], int n)
    {
        printf("\nMang da nhap la:");
        for(int i=0; i<n; i++)
             printf(" %d ",&a[i]);
    }
    printf("so %d (vi tri %d) la uoc so cua %d",a[i],i+1,x); nên "gọt" cho gọn hơn: printf("\n a[%d]=%d la uoc cua %d",i,a[i],x); . Như thế thì dù i=0 thì nó sẽ in ra a[0]= , khỏi mất công i+1

    Bạn sửa lại xem sao nhé.
    Chúc may mắn!


    Tucõi phước
    Tìnhdây oan

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

    làm như bạn nói rồi, nhưng vẫn còn vướng 1 số vấn đề , nó comple ok, nhưng run thì báo là

    Linking...
    new.obj : error LNK2001: unresolved external symbol "void __cdecl dscauc(int const * const,int,int)" (?dscauc@@YAXQBHHH@Z)
    new.obj : error LNK2001: unresolved external symbol "void __cdecl dscaub(int const * const,int,int)" (?dscaub@@YAXQBHHH@Z)
    new.obj : error LNK2001: unresolved external symbol "void __cdecl dsin(int const * const,int)" (?dsin@@YAXQBHH@Z)
    Debug/new.exe : fatal error LNK1120: 3 unresolved externals
    Error executing link.exe.

    new.exe - 4 error(s), 0 warning(s)

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

    C Code:
    1. void dsnhap(int a[], int &n);
    2. void dsin(const int a[],int n);
    3. void dscaua(const int a[],int n,int x);
    4. void dscaub(const int a[],int n,int x);
    5. void dscauc(const int a[],int n,int x);
    6. int nhapso();
    7. void hoanvi(int &x,int &y);
    8.  
    9. void caud(int a[],int x);
    10.  
    11. /////////////
    12. void main()
    13. {
    14.     int a[MAX],n,x;
    15.     dsnhap(a,n);
    16.     dsin(a,n);
    17.     x=nhapso();
    18.     dscaua(a,n,x);
    19.     dscaub(a,n,x);
    20.     dsin(a,n);
    21.     dscauc(a,n,x);
    22.     dsin(a,n);
    23.     getch();
    24. }

    cái phan khai bao là ông thầy mình làm, mình có nhiệm vụ là cài đặt cho nó run được, vì thế việc int nhapso() mình vẫn tạo 1 file cài đặt, vì đây là đề thi về nhà làm, nên mình cũng không dám chỉnh sữa gì nó cả.

  6. #6
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Mặc định Thuật toán sắp xếp cac phan tu tang dan

    Trích dẫn Nguyên bản được gửi bởi thaivinhhuy Xem bài viết
    làm như bạn nói rồi, nhưng vẫn còn vướng 1 số vấn đề , nó comple ok, nhưng run thì báo là
    Lỗi là ở cái : const array[] -> vô nghĩa .
    Const chỉ dùng để khai báo hằng số, tớ chưa nghe khai báo hằng mảng bao giờ.
    Bỏ 3 chữ const đi, là hết lỗi .

  7. #7
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Trích dẫn Nguyên bản được gửi bởi thaivinhhuy Xem bài viết
    [B]cái phan khai bao là ông thầy mình làm
    Có nghĩa là thầy cậu viết ra định nghĩa hàm, cậu chỉ việc xây dựng hàm đúng không? Nếu thế thì ông thầy của cậu có 2 cái dở:
    - Thứ 1: ai lại dùng mảng hằng bao giờ cơ chứ
    - Thứ 2: nếu thầy cậu đã khai báo như thế,thì cậu không thể làm khác rồi --> cái này là dạy cậu học viết code chứ đâu phải học lập trình

    Mấy bài này cơ bản mà, cậu phải tự làm đi chứ, cho dù bài kiểm tra này cậu có ít điểm thì nó phản ánh đúng sức học của cậu. Bọn tớ chỉ có thể giúp cậu về ý tưởng để làm thôi.

  8. #8
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Chú Neverland nóng giận quá , nhưng mà cũng có lý , Thầy viết kệ thầy sao không sửa chứ , phải " chế " ra cậu mới thấm và thấy hay , đồng thời nó giúp cậu lưu nhớ lại kĩ hơn , cậu học lập trình mà phải tư duy và hiểu những đoạn code do chính cậu viết , phân tích code của người khác để lấy làm tư liệu cho riêng mình , như thế cậu mới giỏi hơn thầy cậu được , cố lên

  9. #9
    Ngày gia nhập
    02 2007
    Bài viết
    27

    Bài sau đây chạy OK. Nhưng đây chỉ là giải pháp đối phó tạm thời, bạn phải đọc kỹ, chỗ nào chưa hiểu thì hỏi để bọn này giải thích cho bạn. Mong rằng lần sau bạn sẽ tự viết được chương trình hoàn chỉnh.

    C Code:
    1. //khai bao cac thu vien
    2. #include <stdio.h>
    3. #include <conio.h>
    4. #include <math.h>
    5.  
    6. //khai bao cac hang so
    7. #define MAX 16
    8. #define MIN 1
    9.  
    10. //khai bao cac tham chieu ham (protype)
    11. void dsnhap(int a[], int &n);
    12. void dsin(int a[],int n);
    13. void dscaua(int a[],int n,int x);
    14. void dscaub(int a[],int n,int x);
    15. void dscauc(int a[],int n,int x);
    16. int nhapso();
    17. void hoanvi(int &x,int &y);
    18.  
    19. /////////////
    20. void main()
    21. {
    22.     int a[MAX],n,x;
    23.     clrscr();
    24.     dsnhap(a,n);
    25.     printf("\nMang vua nhap la: ");
    26.     dsin(a,n);
    27.     x=nhapso();
    28.     dscaua(a,n,x);
    29.     printf("\nDon uoc cua %d ve cuoi mang: ",x);
    30.     dscaub(a,n,x);
    31.     dsin(a,n);
    32.     printf("\nSap xep: ");
    33.     dscauc(a,n,x);
    34.     dsin(a,n);
    35.     getch();
    36. }
    37.  
    38. //cai dat
    39. //tu cai ham dsnhap, dsin, nhapso
    40. //danh sach nhap
    41. void dsnhap(int a[], int &n)
    42. {
    43.     for(n=0 ;n<MIN || n>=MAX; )
    44.         {
    45.             printf("Nhap so phan tu (tu 1 -> 15): ");
    46.             scanf("%d", &n);
    47.         }
    48.     for(int i=0;i<n;i++)
    49.         {
    50.             printf("a[%d]= ",i);
    51.             scanf("%d",&a[i]);
    52.         }
    53. }
    54.  
    55. //danh sach in
    56. void dsin(int a[],int n)
    57. {
    58.     for (int i=0;i<n;i++)
    59.          printf(" %d ",a[i]);
    60. }
    61.  
    62. //nhap so
    63. int nhapso()
    64. {
    65.     int x;
    66.     printf("\nNhap x: ");
    67.     scanf("%d",&x);
    68.     return x;
    69. }
    70.  
    71. void dscaua(int a[],int n,int x)
    72. {
    73.     int dem_us = 0;
    74.     for (int i=0;i<n;i++)
    75.         if(a[i]!=0 && x%a[i]==0)
    76.             {
    77.                dem_us++;
    78.                printf("\n a[%d]=%d la uoc so cua %d",i,a[i],x);
    79.             }
    80.  
    81.  
    82.     if(dem_us==0)
    83.         printf("Khong co phan tu nao la uoc so cua %d",x);
    84. }
    85.  
    86. void hoanvi(int &x, int &y) //swap
    87. {
    88.     int t; //temporary value
    89.     t=x;
    90.     x=y;
    91.     y=t;
    92. }
    93.  
    94. void dscaub(int a[],int n,int x)
    95. {
    96.     int left=0,right=n-1;
    97.     while(left<right)
    98.         {
    99.             if (a[left]!=0 && x %a[left]==0)
    100.                 if(a[right]==0 || x %a[right] !=0)
    101.                     hoanvi(a[left],a[right]);
    102.                 else
    103.                     right--;
    104.             else
    105.                 left++;
    106.         }
    107. }
    108.  
    109. void dscauc(int a[],int n,int x)
    110. {
    111.     //BUBBLE SORT ("noi bat")
    112.     for (int i=0;i<n-1;i++)
    113.         for (int j=i+1;j<n;j++)
    114.             if((a[i]==0 || x%a[i]!=0)&&
    115.                (a[j]==0||x % a[j]!=0)&&
    116.                (a[i]>a[j]))
    117.                     hoanvi(a[i],a[j]);
    118. }


    Tucõi phước
    Tìnhdây oan

  10. #10
    Ngày gia nhập
    02 2007
    Bài viết
    27

    Vì bài trước làm theo mẫu của ông thầy nên chưa tối ưu, vì nếu câu a không tìm thấy ước của X thì không phải làm tiếp câu [b] và câu [c].
    Bài này mình chỉnh lại 1 tí, bạn copy về chạy thử để tham khảo nhé.
    Mình mới học ĐH năm nhất à, nên cũng còn "gà" lắm, có gì liên hệ với mình qua nick hirikarate để cùng thảo luận nhé.

    C Code:
    1. //khai bao cac thu vien
    2. #include <stdio.h>
    3. #include <conio.h>
    4. #include <math.h>
    5.  
    6. //khai bao cac hang so
    7. #define MAX 16
    8. #define MIN 1
    9.  
    10. //khai bao cac tham chieu ham (protype)
    11. void dsnhap(int a[], int &n);
    12. void dsin(int a[],int n);
    13. int dscaua(int a[],int n,int x);
    14. void dscaub(int a[],int n,int x);
    15. void dscauc(int a[],int n,int x);
    16. int nhapso();
    17. void hoanvi(int &x,int &y);
    18.  
    19. /////////////
    20. void main()
    21. {
    22.     int a[MAX],n,x,kq;
    23.     clrscr();
    24.     dsnhap(a,n);
    25.     printf("\nMang vua nhap la: ");
    26.     dsin(a,n);
    27.     x=nhapso();
    28.     kq=dscaua(a,n,x);
    29.     if(kq!=0)
    30.        {
    31.             printf("\nDon uoc cua %d ve cuoi mang: ",x);
    32.             dscaub(a,n,x);
    33.             dsin(a,n);
    34.             printf("\nSap xep: ");
    35.             dscauc(a,n,x);
    36.             dsin(a,n);
    37.        }
    38.     getch();
    39.  
    40. }
    41.  
    42. //cai dat
    43. //tu cai ham dsnhap, dsin, nhapso
    44. //danh sach nhap
    45. void dsnhap(int a[], int &n)
    46. {
    47.     for(n=0 ;n<MIN || n>=MAX; )
    48.         {
    49.             printf("Nhap so phan tu (tu 1 -> 15): ");
    50.             scanf("%d", &n);
    51.         }
    52.     for(int i=0;i<n;i++)
    53.         {
    54.             printf("a[%d]= ",i);
    55.             scanf("%d",&a[i]);
    56.         }
    57. }
    58.  
    59. //danh sach in
    60. void dsin(int a[],int n)
    61. {
    62.     for (int i=0;i<n;i++)
    63.          printf(" %d ",a[i]);
    64. }
    65.  
    66. //nhap so
    67. int nhapso()
    68. {
    69.     int x;
    70.     printf("\nNhap x: ");
    71.     scanf("%d",&x);
    72.     return x;
    73. }
    74.  
    75. int dscaua(int a[],int n,int x)
    76. {
    77.     int dem_us = 0;
    78.     for (int i=0;i<n;i++)
    79.         if(a[i]!=0 && x%a[i]==0)
    80.             {
    81.                dem_us++;
    82.                printf("\n a[%d]=%d la uoc so cua %d",i,a[i],x);
    83.             }
    84.  
    85.  
    86.     if(dem_us==0)
    87.         {
    88.             printf("Khong co phan tu nao la uoc so cua %d",x);
    89.             return 0;
    90.         }
    91. }
    92.  
    93. void hoanvi(int &x, int &y) //swap
    94. {
    95.     int t; //temporary value
    96.     t=x;
    97.     x=y;
    98.     y=t;
    99. }
    100.  
    101. void dscaub(int a[],int n,int x)
    102. {
    103.     int left=0,right=n-1;
    104.     while(left<right)
    105.         {
    106.             if (a[left]!=0 && x %a[left]==0)
    107.                 if(a[right]==0 || x %a[right] !=0)
    108.                     hoanvi(a[left],a[right]);
    109.                 else
    110.                     right--;
    111.             else
    112.                 left++;
    113.         }
    114. }
    115.  
    116. void dscauc(int a[],int n,int x)
    117. {
    118.     //BUBBLE SORT ("noi bat")
    119.     for (int i=0;i<n-1;i++)
    120.         for (int j=i+1;j<n;j++)
    121.             if((a[i]==0 || x%a[i]!=0)&&
    122.                (a[j]==0||x % a[j]!=0)&&
    123.                (a[i]>a[j]))
    124.                     hoanvi(a[i],a[j]);
    125. }


    Tucõi phước
    Tìnhdây oan

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

  1. Hàm liệt kê các mảng con tang dần không xuất dữ liệu?
    Gửi bởi ducthan00 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 10-12-2013, 02:48 PM
  2. Dịch vụ đặt vòng hoa Hoa chia buồn, Hoa tang lễ, hoa đám tang giá rẻ hà nội toàn quốc
    Gửi bởi hoanglezthu7 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 09-07-2013, 11:53 PM
  3. Dự án Khu du lịch - Nghỉ dưỡng TP. Phan Thiết Bình Thuận
    Gửi bởi giadia.vn trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 27-02-2013, 12:24 PM
  4. ĐI đưa tang cha, con tử nạn
    Gửi bởi quynhcute trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 14-08-2012, 09:53 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