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ố 19 kết quả

Đề tài: Nhờ sửa lỗi implicit declaration of function trong code C này

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

    Mặc định Nhờ sửa lỗi implicit declaration of function trong code C này

    Code:
    void mergesort(int a[], int left ,int right)
    {
    // sap xep mang a[left...right]
    int mid;
    if(left>=right)
    return;
    mid=(left+right)/2;
    mergesort(left,mid,right);
    mergesort(a,mid+1,right);
    merge(a,left,mid,right);
    }
    
    void merge(int a[],int left,int mid,int right)
    {
    // tron 2 run
    //Run thu nhat a[left...right]
    //run thu hai a[mid +1...right]
    int *b=(int *)malloc((right-left+1)*sizeof(int));
    //mang b duoc dung de copy 2 run sang sau do tron va luu ket qua vao a
    int i,j,k;
    for (i=left;i<=right;i++)
    b[i-left]=a[i];
    j=0;
    k=mid-left+1;
    for (i=left;i<=right;i++)
    if((b[j]<b[k])&&(j<=mid-left)||(k==right-left+1))
    a[i]=b[j++];
    else
    a[i]=b[k++];
    
    }
    
    void merge_sort(int a[],int n)
    
    {
    //sap xep mang a
    mergesort(a,0,n-1);
    
    }
    Em chạy code thuật toán sắp xếp trộn thì nó báo lỗi này các bác giúp em với
    Nó báo lỗi là :
    Code:
    implicit declaration of function `int merge(...)`
    implicit declaration of function `int malloc(...)`
    passing `int` to argument 1 of `mergesort(int *,int ,int)` lack a  cast
    Đã được chỉnh sửa lần cuối bởi Contrai21 : 02-04-2012 lúc 11:47 AM.

  2. #2
    Ngày gia nhập
    12 2010
    Nơi ở
    Hanoi, Vietnam, Vietnam
    Bài viết
    687

    hey , bạn nhìn cái dòng này xem nó có vấn đề hay ko nhé !
    C Code:
    1. mergesort(left,mid,right);
    lần sau bạn up thì up luôn cả code chứ nhìn thế này khó sửa lắm ! :(

  3. #3
    Ngày gia nhập
    03 2012
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi xuyenit55 Xem bài viết
    hey , bạn nhìn cái dòng này xem nó có vấn đề hay ko nhé !
    C Code:
    1. mergesort(left,mid,right);
    lần sau bạn up thì up luôn cả code chứ nhìn thế này khó sửa lắm ! :(
    Bác có thể nói rõ dùm em không
    em không biết chỉnh chỗ đó thế nào
    Nó báo lỗi chỗ đó

  4. #4
    Ngày gia nhập
    12 2010
    Nơi ở
    Hanoi, Vietnam, Vietnam
    Bài viết
    687

    Trích dẫn Nguyên bản được gửi bởi Contrai21 Xem bài viết
    Bác có thể nói rõ dùm em không
    em không biết chỉnh chỗ đó thế nào
    Nó báo lỗi chỗ đó
    cái hàm megesort của bạn là megesort( int a[] , int , int ) thế bạn lại gọi là
    megesort(int , int , int ) có ji nó chả báo lỗi
    sửa lại thành
    C Code:
    1.  megesort(a , left , mid )

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

    Trích dẫn Nguyên bản được gửi bởi xuyenit55 Xem bài viết
    cái hàm megesort của bạn là megesort( int a[] , int , int ) thế bạn lại gọi là
    megesort(int , int , int ) có ji nó chả báo lỗi
    sửa lại thành
    C Code:
    1.  megesort(a , left , mid )
    Vẫn lỗi bác ạ
    bác chỉnh lại code hoàn chỉnh cho em phát
    Cảm ơn bác nhiều nhiều,bác đẹp zai

  6. #6
    Ngày gia nhập
    11 2010
    Bài viết
    589

    Mặc định Nhờ sửa lỗi implicit declaration of function trong code C này

    Hàm merge() được sử dụng khi chưa khai báo. Phải khai báo trước rồi mới được sử dụng.

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

    Bạn post code hoàn chỉnh lên đi, post vậy làm sao mà đọc được, không có headers gì hết ! malloc xong cũng không thèm free() luôn!

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

    Trích dẫn Nguyên bản được gửi bởi rox_rook Xem bài viết
    Bạn post code hoàn chỉnh lên đi, post vậy làm sao mà đọc được, không có headers gì hết ! malloc xong cũng không thèm free() luôn!
    Code hoàn chỉnh đây bác
    bác chỉnh em với

    Code:
    #include <stdio.h>
    #include <conio.h>
    void mergesort(int a[], int left ,int right)
    {
    // sap xep mang a[left...right]
    int mid;
    if(left>=right)
    return;
    mid=(left+right)/2;
    mergesort(a,mid,right);
    mergesort(a,mid+1,right);
    merge(a,left,mid,right);
    }
    
    void merge(int a[],int left,int mid,int right)
    {
    // tron 2 run
    //Run thu nhat a[left...right]
    //run thu hai a[mid +1...right]
    int *b=(int *)malloc((right-left+1)*sizeof(int));
    //mang b duoc dung de copy 2 run sang sau do tron va luu ket qua vao a
    int i,j,k;
    for (i=left;i<=right;i++)
    b[i-left]=a[i];
    j=0;
    k=mid-left+1;
    for (i=left;i<=right;i++)
    if((b[j]<b[k])&&(j<=mid-left)||(k==right-left+1))
    a[i]=b[j++];
    else
    a[i]=b[k++];
    free(b)
    }
    
    void merge_sort(int a[],int n)
    
    {
    //sap xep mang a
    mergesort(a,0,n-1);
    
    }

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

    Không có chỉnh dùm đâu nhá . Mình chỉ hướng dẫn thui:
    Hàm merge sort thì có vẻ OK rồi. Vậy hàm merge đúng chưa? Nếu đúng thì cho mình các test case coi thử?
    Còn cái lỗi trên thì cứ việc tạo header cho nó là xong.
    C++ Code:
    1.  
    2. #include <stdio.h>
    3.  
    4. /**
    5.  * Function Headers
    6.  */
    7.  
    8. void merge_sort_helper(int a[], int left, int right);
    9. void merge_sort(int a[], int n);
    10. void merge(int a[], int left, int middle, int right);
    11.  
    12.  
    13. int main() {
    14.     int data[4] = {1, 2, 3, 4};
    15.     merge_sort_helper(data, 0, 1);
    16.     merge_sort(data, 4);
    17.     merge(data, 0, 1, 2);
    18. }
    19.  
    20. /**
    21.  * Function Implementation
    22.  */
    23.  
    24. void merge_sort_helper(int a[], int left, int right) {
    25.     // TODO: write code
    26. }
    27.  
    28.  
    29. void merge_sort(int a[], int n) {
    30.     // TODO: of course write more code...
    31. }
    32.  
    33.  
    34. void merge(int a[], int left, int middle, int right) {
    35.     // TODO: again write code
    36. }

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

    Trích dẫn Nguyên bản được gửi bởi rox_rook Xem bài viết
    Không có chỉnh dùm đâu nhá . Mình chỉ hướng dẫn thui:
    Hàm merge sort thì có vẻ OK rồi. Vậy hàm merge đúng chưa? Nếu đúng thì cho mình các test case coi thử?
    Còn cái lỗi trên thì cứ việc tạo header cho nó là xong.
    C++ Code:
    1.  
    2. #include <stdio.h>
    3.  
    4. /**
    5.  * Function Headers
    6.  */
    7.  
    8. void merge_sort_helper(int a[], int left, int right);
    9. void merge_sort(int a[], int n);
    10. void merge(int a[], int left, int middle, int right);
    11.  
    12.  
    13. int main() {
    14.     int data[4] = {1, 2, 3, 4};
    15.     merge_sort_helper(data, 0, 1);
    16.     merge_sort(data, 4);
    17.     merge(data, 0, 1, 2);
    18. }
    19.  
    20. /**
    21.  * Function Implementation
    22.  */
    23.  
    24. void merge_sort_helper(int a[], int left, int right) {
    25.     // TODO: write code
    26. }
    27.  
    28.  
    29. void merge_sort(int a[], int n) {
    30.     // TODO: of course write more code...
    31. }
    32.  
    33.  
    34. void merge(int a[], int left, int middle, int right) {
    35.     // TODO: again write code
    36. }

    Cảm ơn các anh em đã fix được rồi
    Cho em hỏi là người ta khai báo
    Code:
    void merge(int *left,int *right)
    Thì khác gì với khai báo như này ạ
    Code:
    void merge(int left,int right)

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

  1. Hàm trong C previous implicit declaration of *** was here
    Gửi bởi phamvandoanh805 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 03-11-2012, 02:12 AM
  2. Làm sao để chia code class với template declaration ở một file còn definition ở một file khác?
    Gửi bởi homanhduc 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: 20-07-2011, 01:49 AM
  3. Bài tập C lỗi implicit declaration of function `int DoiFoot(...)'
    Gửi bởi dothanhlap trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 07-06-2011, 09:43 AM
  4. Trả lời: 1
    Bài viết cuối: 12-05-2011, 10:35 PM
  5. Code cho trang login không cần Class hay Function
    Gửi bởi vanthang trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 1
    Bài viết cuối: 18-04-2011, 01:13 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