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

Đề tài: [ Solved ]Cần giúp giùm về mảng 1 chiều

  1. #1
    Ngày gia nhập
    07 2008
    Bài viết
    6

    Wink [ Solved ]Cần giúp giùm về mảng 1 chiều

    Tôi có code bài sắp xếp tăng dần mảng 1 chiều ,chương trình chạy đúng nhưng tui duyệt từng dòng code bằng tay thì không ra (tại gà), pác nào biết chỉ khúc mắc giùm tui nha .
    C++ Code:
    1. using namespace std;
    2. void sapxep(int ary[]);
    3. int main()
    4. {
    5.     int ary[5]={8,6,2,5,3};
    6.     sapxep(ary);
    7.     for(int i=0;i<5;i++)
    8.         cout<<ary[i]<<" ";
    9.     return 0;
    10. }
    11. void sapxep(int ary[])
    12. {
    13.     int i,j;
    14.     for(i=0;i<4;i++)
    15.         for(j=4;j>i;j--)
    16.             if(ary[j]<ary[j-1])
    17.             {
    18.                 int t=ary[j];
    19.                 ary[j]=ary[j-1];
    20.                 ary[j-1]=t;
    21.             }
    22. }

    tôi chạy với vòng lặp bằng tay như sau :
    i j
    0 4 || 8 | 6 | 2 | 3 | 5 |
    0 3 || 8 | 2 | 6 | 3 | 5 |
    0 2 || 8 | 2 | 3 | 6 | 5 |
    0 1 || 8 | 2 | 3 | 5 | 6 |
    .................................................. ................
    vậy khi chạy tới j<=i , thì vòng lặp thứ 2 kết thúc , không đổi chỗ 8 và 2 được , cái chỗ này tui không hiểu pác nào biết chỉ giùm tui .

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

    khi i=0 và j=1 thì bắt đầu đổi chỗ. Sau khi đổi chỗ xong và KẾT THÚC vòng for thứ 2 thì ta sẽ có :
    0 0 || 2 8 6 3 5
    Bạn debug thì sẽ thấy rõ ngay thôi.
    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.

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

    sẵn tiện 1 bài nữa giúp giùm nha mèo con
    C++ Code:
    1. using namespace std;
    2. int f(int x);
    3. int main()
    4. {
    5.     f(5);
    6.     return 0;
    7. }
    8. int f(int x)
    9. {
    10.     if(x>0)
    11.         f(--x);
    12.     cout<<x<<" ";
    13. }
    tớ ko hiểu đệ qui này ,theo tớ làm thì số xuất đầu tiên là 4 , nhưng kết quả chạy là 0 0 1 2 3 4 , chỉ giùm mình nha

  4. #4
    Ngày gia nhập
    08 2008
    Bài viết
    22

    Vì cậu để cout<<x<<" "; sau lời gọi đệ quy if(x>0) f(--x); chứ còn sao nữa. Mà viết hàm chả chịu return gì cả, lười ghê :d

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

    bạn berberin nói đúng rồi đó, đệ quy chạy sâu vào cho đến khi x = 0 mới ngừng và cout lại ở dưới lời gọi đệ quy nên số 0 sẽ được in ra trước.
    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.

  6. #6
    Ngày gia nhập
    07 2008
    Bài viết
    6

    Mặc định [ Solved ]Cần giúp giùm về mảng 1 chiều

    vậy là đệ qui chạy hết nó mới bắt đầu xuất ra ah , hix , kiến thức tui hổng nhiều wa , về ôn lại thui .
    Thanks 2 you nha .

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

  1. Giải thích giùm con trỏ trong mảng 2 chiều
    Gửi bởi rong3sao trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 24-01-2010, 07:09 PM
  2. [ Solved ]Chỉ giùm em lỗi sai struct
    Gửi bởi acaica trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 30-10-2008, 04:31 PM
  3. [ Solved ]Coi giùm em cái danh sách liên kết này với!!!
    Gửi bởi Kan trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 25-10-2008, 10:13 PM
  4. [ Solved ]Hỏi lại về mảng 2 chiều
    Gửi bởi RedHatLinux9 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: 29-09-2008, 02:17 PM
  5. [ Solved ]Xem giùm em sao ko lặp được?
    Gửi bởi khanh_0507 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 9
    Bài viết cuối: 07-09-2008, 12:13 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