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

Đề tài: Ma trận & lân cận 8 (Sai diễn đàn, đã được chuyển)

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

    Mặc định Ma trận & lân cận 8 (Sai diễn đàn, đã được chuyển)

    Em mới học C và được giao về nhà bài này nhưng có quá nhiều cách để làm và đến thời điểm hiện tại thuật toán của em vẫn chưa đựoc hoàn thiện . Hay nói chính xác là sai trong trường hợp vùng biên ai giúp hộ Thanks.


    . Cho ma trận A[M][N]. Ta định nghĩa một phần tử được gọi là “cực trị” khi nó lớn hơn hay nhỏ hơn tất cả các phần tử xung quanh nó
    a. Đếm số lượng các phần tử cực trị trong ma trận
    b. Sắp xếp các phần tử cực trị tăng dần


    6 7 12 3
    2 9 5 10
    15 0 8 7
    các số đỏ là vùng lân cận 8 của số 9. các số cực trị khi chạy hết là 12, 3, 15, 0 và sau khi xếp ma trận thành thế này :
    6 7 0 3
    2 9 5 10
    12 15 8 7

  2. #2
    Ngày gia nhập
    01 2008
    Bài viết
    2

    có ai hảo tâm giúp hộ em trai Hoa Sen được hem ? Many thanks nhiều ~

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

    Gợi ý chút nhé:
    Gọi arr[][] là mảng cần xét.
    Ít nhất có 2 cách tiếp cận bài này:
    - Một là, nếu gặp rắc rối ở vùng biên, sao không làm mất nó đi? Mở rộng ra bên ngoài mảng 2 chiều thêm một vòng nữa, thì xung quanh tất cả các ô của mảng 2 chiều có đủ 8 ô rồi phải không?
    - Hai là, trong bài này bắt buộc phải so sánh giá trị 1 ô với các ô xung quanh, do đó nếu làm thủ công từ 1 -> 8 thì sẽ rất "vất vả". Tuy vậy bản chất việc lấy các ô xung quanh thì lại giống nhau.
    => Đặt ra 2 mảng phụ a[] = {-1,-1,-1,0,0,1,1,1}; b[] = {-1,0,1,-1,1,-1,0,1}.
    Khi đó chỉ cần 2 vòng for để so sánh arr[i][j] với arr[i+a[k]][j+b[l]] và đặt điều kiện (i+a[k]>=0)&&(j+b[l]>=0) thì sẽ giải quyết được vấn đề vùng biên(k và l là 2 biến đếm từ 1 đến 8).
    //Mình biết cách 2 này không vẽ hình ra thì đọc hơi khó hiểu, nhưng bạn chịu khó làm thử nhé. Cách này khá độc đáo đó(tất nhiên không phải mình nghĩ ra)
    Hy vọng giúp được bạn.

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

    anh có thể cho thêm đoạn code hướng dẫn hem ? em hiểu sơ roài nhưng mà phần kết nối dữ liệu nữa. Nếu tao cho mảng thêm 1 vòng nữa thì cho nó bằng 0 đi thì làm sao để tính mà bỏ qua phần biên đó. thanks anh nếu giúp được đoạn code hoặc hình dễ hiểu hơn. Nhưng dù sao vẫn thanks rất rất nhiều ,.

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

    đã làm thành công cảm ơn mọi người nhiều. BB

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

  1. Algorithm Chuyển ảnh thành ma trận trong C#
    Gửi bởi mrpi92 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 10-11-2013, 03:15 PM
  2. Bài tập C++ chuyển chương trình nén ảnh từ 8 bit sang ảnh đen trắng tức 1 bit bằng C++
    Gửi bởi lovelan 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: 09-04-2013, 03:16 PM
  3. Chuyển nhượng cửa hàng quần áo – 29E Trần Bình Trọng , Hai Bà trưng , Hà Nội
    Gửi bởi k3d3ms4o 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: 17-07-2012, 11:57 PM
  4. Lập trình C++ Chuyển đổi ảnh số qua ma trận
    Gửi bởi clone trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 05-09-2011, 03:29 PM
  5. chuyển ma trận thường sang ma trận bậc thang
    Gửi bởi fithou91192 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 19
    Bài viết cuối: 12-04-2011, 10:26 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