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

Đề tài: chuyển đổi sang dạng sắp xếp (int n, float *a) ? help me

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

    Mặc định chuyển đổi sang dạng sắp xếp (int n, float *a) ? help me

    em làm bài tập sau: muốn chuyển đổi lại theo hàm sapxep(int n, float *a) sắp xếp dãy số a0, a1...., an-1 nhập vào từ bàn phím thì phải sửa lại thế nào? nhờ các member giúp đỡ. thanks.
    Code:
    #include<iostream.h>
    void inday(int *a,int n)
    {
        int i;
        for(i=0;i<n;i++)
        {
            cout<<*a<<"  ";
            a++;
        }
    }
    void xapxepgiamdan(int*a,int n)
    {
        int i,j,tg,min;
        for(i=0;i<n;i++)
        {
            for(j=i;j<n;j++)
            {
                if(*(a+i)<*(a+j))
                {
                    tg=*(a+i);
                    *(a+i)=*(a+j);
                    *(a+j)=tg;
                }
            }
        }
    }
    int main()
    {
        int i,j,dng,n;
        cout<<"Nhap so phan tu trong mang : " ;
        cin>>n;
        int a[n];
        for(i=0;i<n;i++)
        {
            cout<<"Nhap phan tu thu "<<i<<" : ";
            cin>>a[i];
        }
        cout<<"Day so sau khi nhap la : \n";
        inday(a,n);
        xapxepgiamdan(a,n);
        cout<<"\nDay so sau khi xap xep giam dan la : \n";
        inday(a,n);
        return 0;
    }
    Đã được chỉnh sửa lần cuối bởi bqonline : 16-02-2009 lúc 10:20 AM. Lý do: cho vào tag code

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

    Nếu bạn là tác giả của đoạn code trên thì mình tin bạn sẽ giải được câu hỏi này. Hãy động não tí.

    Còn ngược lại, bạn hãy vào box ANSI C++ tìm các tuts, tip hoặc ebook về sắp xếp ( hoặc google với key : Buble sort, Selection sort, Insertion sort, quick sort, heap sort )

    Hãy nắm vững lí thuyết trước đã .

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

    Trích dẫn Nguyên bản được gửi bởi kidkid Xem bài viết
    Nếu bạn là tác giả của đoạn code trên thì mình tin bạn sẽ giải được câu hỏi này. Hãy động não tí.

    Còn ngược lại, bạn hãy vào box ANSI C++ tìm các tuts, tip hoặc ebook về sắp xếp ( hoặc google với key : Buble sort, Selection sort, Insertion sort, quick sort, heap sort )

    Hãy nắm vững lí thuyết trước đã .
    bài trên mình sửa lại đê nó chạy đã rồi chuyển sau nhưng nó vẫn báo lỗi: Constand expression required ở int a[n] là làm sao?
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<iostream.h>
    
    void inday(int *a,int n)
    {
        int i;
        for(i=0;i<n;i++)
        {
            cout<<*a<<"  ";
            a++;
        }
    }
    void xapxepgiamdan(int*a,int n)
    {
        int i,j,tg;//,min;
        for(i=0;i<n;i++)
        {
            for(j=i;j<n;j++)
            {
                if(*(a+i)<*(a+j))
                {
                    tg=*(a+i);
                    *(a+i)=*(a+j);
                    *(a+j)=tg;
                }
            }
        }
    }
    int main()
    {
        int i,n;
        cout<<"Nhap so phan tu trong mang : " ;
        cin>>n;
        int a[n];
        for(i=0;i<n;i++)
        {
            cout<<"Nhap phan tu thu "<<i<<" : ";
            cin>>a[i];
        }
        cout<<"Day so sau khi nhap la : \n";
        inday(a,n);
        xapxepgiamdan(a,n);
        cout<<"\nDay so sau khi xap xep giam dan la : \n";
        inday(a,n);
        return 0;
    }

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

    Thử sửa lại ở hàm xapxepgaimdan() xem sao nhé:
    for(i=0;i<n-1;i++)
    for(j=i+1;j<n;j++)

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

    Constand expression required ở int a[n]
    Code:
    int main()
    {
        int i,n;
        cout<<"Nhap so phan tu trong mang : " ;
        cin>>n;
        int a[n];
        .....
    }
    ko có kiểu cấp phát vui tính như thế này đâu, int a[n]; là cấp phát tĩnh thì n phải là Hằng Số, còn nếu muốn thay đổi thì phải dùng cấp phát động.
    code ra gió bão

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

    Mặc định chuyển đổi sang dạng sắp xếp (int n, float *a) ? help me

    bạn nói rõ cho mình hiểu dùng cấp phát động là như thế nào?
    mình đã chuyển: int*a = new int(n); nhưng vẫn kô chạy đc?
    đó có phải là dùng cấp phát động kô?

  7. #7
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Trích dẫn Nguyên bản được gửi bởi bqonline Xem bài viết
    bạn nói rõ cho mình hiểu dùng cấp phát động là như thế nào?
    mình đã chuyển: int*a = new int(n); nhưng vẫn kô chạy đc?
    đó có phải là dùng cấp phát động kô?
    Code:
    int *a = new int [n];
    Bạn phải dùng dấu ngoặc vuông chứ ko phải ngoặc tròn.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

    xin cảm ơn các member; mình đã sửa chạy được nhưng trong vòng lặp sắp xếp thì nó sắp xếp sai. đang tìm nguyên nhân, ai có thể giải thích dùm không?
    Code:
    void xapxepgiamdan(int*a,int n)
    {
        int i,j,tg;//,min;
        for(i=0;i<n;i++)
        {
            for(j=i;j<n;j++)
            {
                if(*(a+i)<*(a+j))
                {
                    tg=*(a+i);
                    *(a+i)=*(a+j);
                    *(a+j)=tg;
                }
            }
        }
    }
    đoạn code trên sai nhưng mình chưa hiểu lắm,
    Đã được chỉnh sửa lần cuối bởi bqonline : 20-02-2009 lúc 12:11 AM. Lý do: thêm code

  9. #9
    Ngày gia nhập
    04 2008
    Bài viết
    336

    C Code:
    1. void xapxepgiamdan(int*a,int n)
    2. {
    3.     int i,j,tg;
    4.     for(i=0;i<n-1;i++)
    5.     {
    6.         for(j=i+1;j<n;j++)
    7.         {
    8.             if(*(a+i)<*(a+j))
    9.             {
    10.                 tg=*(a+i);
    11.                 *(a+i)=*(a+j);
    12.                 *(a+j)=tg;
    13.             }
    14.         }
    15.     }
    16. }
    code ra gió bão

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

    Trích dẫn Nguyên bản được gửi bởi 6220119 Xem bài viết
    C Code:
    1. void xapxepgiamdan(int*a,int n)
    2. {
    3.     int i,j,tg;
    4.     for(i=0;i<n-1;i++)
    5.     {
    6.         for(j=i+1;j<n;j++)
    7.         {
    8.             if(*(a+i)<*(a+j))
    9.             {
    10.                 tg=*(a+i);
    11.                 *(a+i)=*(a+j);
    12.                 *(a+j)=tg;
    13.             }
    14.         }
    15.     }
    16. }

    sửa lại nhưng khi chạy kết quả sắp xếp lại sai. chưa hiểu sao ai giải thích giùm tôi với. Không biết cái lỗi xảy ra ở đây là j nữa.

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

  1. Bài tập C Xử lý xâu trong C, Chuyển từ xâu sang float
    Gửi bởi kingku_1993 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: 16-11-2013, 08:02 PM
  2. Bài tập C++ Hàm Chuyển Phân Số Sang float
    Gửi bởi xuannam2620 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 29-10-2012, 09:10 PM
  3. Chuyển dổi số thập phân có dấu(float) sang nhị phân và ngược lại
    Gửi bởi huyphoon trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 19-09-2012, 09:09 PM
  4. Chuyển từ CString sang Float bị mất dữ liệu
    Gửi bởi Athrun trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 5
    Bài viết cuối: 26-10-2011, 01:00 PM
  5. Rắc rối với chuyển kiểu complex sang float
    Gửi bởi quangdl.khtn trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 9
    Bài viết cuối: 12-08-2010, 04:51 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