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

Đề tài: Duyệt mảng bằng con trỏ

  1. #1
    Ngày gia nhập
    09 2011
    Nơi ở
    Registry
    Bài viết
    43

    Mặc định Duyệt mảng bằng con trỏ

    mình duyệt mảng bằng con trỏ để đảo ngược 1 mảng số nguyên, đây là bài mình làm nhưng chạy ko đúng, các bạn chỉ chỗ sai dùm mình dc hok?
    C++ Code:
    1. void DaoMang(int *a,int n)
    2. {
    3. int *p=a,*q=a+(n/2),*r=a+n;
    4.     for(;p<q;p++)
    5.     {
    6.         int x=*p;
    7.         *p=*r;
    8.         *r=x;
    9.     }
    10. }
    C++ Code:
    1. int BanHoc=1, BanBiet=10;
    2.     if(BanHoc==0)
    3.         cout <<"Ban nen di hoc!";
    4.     else
    5.         if(BanBiet==10)
    6.             cout <<"Ban qua pro!";

  2. #2
    Ngày gia nhập
    09 2011
    Nơi ở
    Registry
    Bài viết
    43

    Sao ko ai chịu đọc bài của mình hết zi? Đang bó tay với cách duyệt mảng bằng con trỏ đây
    C++ Code:
    1. int BanHoc=1, BanBiet=10;
    2.     if(BanHoc==0)
    3.         cout <<"Ban nen di hoc!";
    4.     else
    5.         if(BanBiet==10)
    6.             cout <<"Ban qua pro!";

  3. #3
    Ngày gia nhập
    04 2010
    Nơi ở
    Binh Thanh, Hồ Chí Minh, Vietnam, Vietnam
    Bài viết
    504

    Lại gặp bạn nữa rồi.
    C Code:
    1. void DaoMang(int *a, int n)
    2. {
    3.     // Thuật toán:
    4.     // Duyệt theo hai hướng.
    5.     // - Từ đầu chuỗi đến cuối chuỗi.
    6.     // - Từ cuối chuỗi lên đầu chuỗi.
    7.     // Hoán vị từng phần tử tương ứng.
    8.  
    9.     int *pos_b = a; // Trỏ vào đầu mảng.
    10.     int *pos_e = a + n - 1; // Trỏ vào cuối mảng.
    11.  
    12.     while(pos_b < pos_e) // Lặp đến khi nào con trỏ đầu lớn hơn hoặc bằng con trỏ cuối.
    13.     {
    14.         int x = *pos_b;
    15.         *pos_b = *pos_e;
    16.         *pos_e = x;
    17.  
    18.         pos_b++; // Tăng con trỏ đầu.
    19.         pos_e--; // Giảm con trỏ cuối.
    20.     }
    21. }
    Kết bạn với tôi <3
    Skype: giautm
    Facebook:
    https://fb.com/giautm.duongntt
    Email:
    giau.tmg@gmail.com

  4. #4
    Ngày gia nhập
    04 2010
    Nơi ở
    Binh Thanh, Hồ Chí Minh, Vietnam, Vietnam
    Bài viết
    504

    Code này của bạn thì cũng tạm ổn: chỉ thiếu chút.
    C Code:
    1. void DaoMang(int *a,int n)
    2. {
    3.     int *p = a, *q = a + (n / 2);// *r = a + n; // Bạn lại quên nữa rồi. Phải là n - 1
    4.     int *r = a + n - 1;
    5.     for(; p<q; p++)
    6.     {
    7.         int x=*p;
    8.         *p=*r;
    9.         *r=x;
    10.         // Thêm chỗ này, nếu không r sẽ luôn luôn trỏ vào cuối mảng.
    11.         r--;
    12.     }
    13. }
    Kết bạn với tôi <3
    Skype: giautm
    Facebook:
    https://fb.com/giautm.duongntt
    Email:
    giau.tmg@gmail.com

  5. #5
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Trích dẫn Nguyên bản được gửi bởi nhatminh266 Xem bài viết
    Sao ko ai chịu đọc bài của mình hết zi? Đang bó tay với cách duyệt mảng bằng con trỏ đây
    Lười biếng tìm, chỉ lo than thở. Bài này đã được giải rồi. Cách giải rõ ràng. Code gọn sạch. Chỉ cần chịu khó tìm thôi.

  6. #6
    Ngày gia nhập
    09 2011
    Nơi ở
    Registry
    Bài viết
    43

    Mặc định Duyệt mảng bằng con trỏ

    Thanks bạn @doicanhden nha!, Bạn VoTichSu ko hiểu mình rùi, mình chỉ mún mọi người xem code của mình koi thử nó sai ở đâu rùi giải thích giúp mình. Chứ nếu mình chỉ mún tìm code thì mình ko cần lên đây hỏi đâu bạn à. Vì mình muốn mình tìm thấy lỗi sai ở mình rồi giải quyết thế mới hiểu dc, chứ lên tìm code xong về đánh lại kug như ko. CongdongCviet là để chia sẻ và học hỏi, bạn cứ bảo mình đi tìm như thế thì học hỏi dc gì hả bạn
    C++ Code:
    1. int BanHoc=1, BanBiet=10;
    2.     if(BanHoc==0)
    3.         cout <<"Ban nen di hoc!";
    4.     else
    5.         if(BanBiet==10)
    6.             cout <<"Ban qua pro!";

  7. #7
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Khi gặp code chạy không đúng thì cho ví dụ. Input và Output. Output của code ra sao và nếu đúng thì phải ra sao.
    Người có kinh nghiệm nhìn qua input/Ouput thì có thể đoán được gần hết vấn đề.

  8. #8
    Ngày gia nhập
    09 2011
    Nơi ở
    Registry
    Bài viết
    43

    Mình nghĩ các bạn trên C việt rất giỏi nên chỉ đưa cái hàm lên thui, họ nhìn vào sẽ biết sai ở đâu vì kinh nghiệm đầy mình. Cho nên mình đã ko đưa input/output. Mình cũng xl là ko đưa ví dụ lên. Bạn VoTichSu có thấy bạn doicanhden ko? bạn ấy đã chỉ ra dc lỗi sai của mình đó, giờ thì mình hiểu là tại sao rùi. Nếu bạn đã ko giúp dc gì thì hãy cho người ta 1 lời khuyên chứ đừng bảo người ta lười biếng trong khi chưa biết người đó có thật sự lười biếng?
    C++ Code:
    1. int BanHoc=1, BanBiet=10;
    2.     if(BanHoc==0)
    3.         cout <<"Ban nen di hoc!";
    4.     else
    5.         if(BanBiet==10)
    6.             cout <<"Ban qua pro!";

  9. #9
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Nếu bạn có ví dụ dữ liệu thì 90% trường hợp tôi có thể giúp bạn cách tìm tại sao mình sai. Thay vì chỉ nêu ra chỗ sai.

    Muốn học hỏi kiểu nào là tùy bạn.

    Trước khi trách cứ, nên suy nghĩ tại sao người ta muốn mình phải chịu khó.
    Đã được chỉnh sửa lần cuối bởi VoTichSu : 16-04-2012 lúc 02:29 PM.

  10. #10
    Ngày gia nhập
    09 2011
    Nơi ở
    Registry
    Bài viết
    43

    Bạn đã sai ùi, mình mún cải tiến code của mình nên mới hỏi để sửa lại cho đúng nếu muốn code người khác thì mình đã nói "Cho mình xin code...."
    C++ Code:
    1. int BanHoc=1, BanBiet=10;
    2.     if(BanHoc==0)
    3.         cout <<"Ban nen di hoc!";
    4.     else
    5.         if(BanBiet==10)
    6.             cout <<"Ban qua pro!";

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

  1. Trình duyệt Opera, giúp bạn trải nghiệm tốt hơn khi duyệt wap
    Gửi bởi hailuacuibep trong diễn đàn Software (Phần mềm) | Ebooks
    Trả lời: 2
    Bài viết cuối: 02-01-2013, 12:12 PM
  2. Lỗi con trỏ DSLK, add vào nhưng khi duyệt con trỏ vẫn bằng NULL, ko duyệt được
    Gửi bởi kuhoang0512 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 9
    Bài viết cuối: 29-11-2011, 04:20 PM
  3. Duyệt các controls bằng foreach thì control nào sẽ được duyệt trước
    Gửi bởi chitviv trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 05-10-2011, 10:01 PM
  4. Cách thức duyệt tiền tự trên cây khi duyệt từ con trái nhất rồi sang anh em ruột phải?
    Gửi bởi tyrant trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 0
    Bài viết cuối: 14-09-2011, 10:53 AM
  5. ADO.NET Thứ tự của control( textbox) được duyệt khi chạy đệ quy duyệt các control trên form
    Gửi bởi caheoxanh trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 17-06-2011, 09:12 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