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

Đề tài: Cách xóa hàng và cột thứ n của mảng 2 chiều trong C/C++?

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

    Mặc định Cách xóa hàng và cột thứ n của mảng 2 chiều trong C/C++?

    Nhờ các bác hướng dẫn em thuật toán xóa hàng và cột thứ n của mảng 2 chiều.
    vd như em có mảng như sau:
    Code:
    1 2 3 4
    5 6 7 8
    9 0 1 2
    3 4 5 6
    sau khi gọi hàm với n=1 thì mảng sẽ là:
    1 3 4
    9 1 2
    3 5 6
    Nếu có code thì quá tốt :p. Thank mấy bác trước nha!

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

    Bạn nên tạo thêm một mảng hai chiều nữa
    Khi bạn nhập n ( số hàng và cột cần xóa )
    Thì duyệt mảng , những phần tử nào có i hoặc j bằng 1 thì không cho vào mảng
    còn những phần tử còn lại thì đưa vào mảng mới
    Sau đó in ra mảng mới

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

    Em cũng nghĩ như bác nhưng khổ nổi đề bài yêu cầu không dùng mảng phụ. Hix.
    Đã được chỉnh sửa lần cuối bởi nguenviet : 12-04-2009 lúc 11:30 PM. Lý do: sửa lỗi chính tả

  4. #4
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Tôi dùng mảng 1 chiều và xuất ra y như bạn yêu cầu có được xem là hợp lệ ko?
    Nếu ko thì đơn giản là:
    Gọi x và y lần lượt là toạ độ dòng và cột cần xoá trong ma trận m x n
    Cho i đi từ dòng x đến dòng m - 1 ta lần lượt chép giá trị của dòng i + 1 cho dòng i.
    Giảm m.
    Cho i đi từ dòng 0 đến dòng m, trong đó cho j đi từ cột y đến cột n - 1, ta lần lượt chép giá trị của cột j + 1 cho cột j.
    Giảm n.

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

    nếu không sử dụng mảng phụ thì khi in ra ma trận bạn chỉ cần xét điều kiện i và j khác số n là được thôi

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

    Red face Cách xóa hàng và cột thứ n của mảng 2 chiều trong C/C++?

    Trích dẫn Nguyên bản được gửi bởi huynguyen Xem bài viết
    Tôi dùng mảng 1 chiều và xuất ra y như bạn yêu cầu có được xem là hợp lệ ko?
    Nếu ko thì đơn giản là:
    Trong khi chờ bài trả lời em đã làm xong . Thuật toán y chang như "cái đơn giản" của bác.
    Thanks bác nhìu nha!

  7. #7
    Ngày gia nhập
    04 2008
    Nơi ở
    HCM
    Bài viết
    7

    Bạn có thể làm như sau: ( Cách của mình là để trong hàm luôn nha)

    Code:
    void DelColRow(Array[][100] , int &Row , int &Col)
    {
    
    int DelC ; int DelR ; printf("\n Ban muon xoa dong nao: \n"); scanf("%d" , &DelR); printf("\n Ban muon xoa cot nao: \n"); scanf("%d" , &DelC); for(int i = 0 ; i < R ; i++) { for(int j = 0 ; j < C ; j++) { Array[i - ( i> DelR-1)][j - (j > DelC-1)] = Array[i][j]; } } Row --; Col--;
    }
    Hàm dời dòng và cột là do thằng bạn mình làm.........ngắn gọn dễ hiểu
    Đã được chỉnh sửa lần cuối bởi BabyBoi : 13-04-2009 lúc 10:45 AM.
    Chick Chick Chick .......em là newbie

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

    Array[i - ( i> DelR-1)][j - (j > DelC-1)] = Array[i][j];
    cái này là sao vậy bác hè? Em chưa thấy bao h, bác có thể giải thích dùm em hông?

  9. #9
    Ngày gia nhập
    04 2008
    Nơi ở
    HCM
    Bài viết
    7

    À cái lệnh:
    Array[i - ( i> DelR-1)][j - (j > DelC-1)] = Array[i][j];

    được hiểu như sau:

    Giả sử người dùng muốn xóa dòng 2 thì họ nhập vào 2 . Nhưng trong ma trện sẽ hiểu là xóa dòng 1.
    Dùng 2 dòng lặp for để duyệt ma trận thì nếu i lớn hơn dòng 1 ( dòng muốn xóa) thì giá trị của dòng 1 sẽ được thay thể bởi dòng 2 và dòng 2 được thay thế bằng dòng 3.......................

    -----> ( i> DelR-1)
    Nếu i lớn hơn dòng muốn xóa nó sẽ trả về giá trị là 1. Nếu không phải thì trả về 0.

    Mình nói khó hiểu lắm.......bạn cố suy nghĩ thêm tí là hiểu liền
    Chick Chick Chick .......em là newbie

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

    Cho em hỏi nếu đề bài là loại đi các hàng và cột chứa phần tử 0.chứ k phải mún xóa hàng hay cột nào thì làm tn?

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

  1. Bài tập C xóa,thêm phần tử trong mảng 1 chiều
    Gửi bởi gacongnghe trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 26-09-2015, 01:44 PM
  2. Bài tập C xóa phần tử trùng nhau trong mảng 1 chiều để lại 1 phần tử
    Gửi bởi ronoa trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 06-01-2012, 10:46 PM
  3. xóa phần tử là số chính phương trong mảng 1 chiều. Xem giúp code của mình với?
    Gửi bởi loveboom3012 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 5
    Bài viết cuối: 23-08-2011, 07:07 PM
  4. xóa 1 dòng của mảng,dịch suống k vị trí mảng 2 chiều
    Gửi bởi thanhdieu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 12-12-2010, 08:55 AM
  5. Bài tập C++ xóa sinh viên trong dssv , ai test dùm em , xóa sv thứ 3 mà nó toàn xóa sv thứ 4
    Gửi bởi prt_awm trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 08-11-2010, 02:24 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