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

Đề tài: Bài tập về sắp xếp các phần tữ trong mảng?

  1. #1
    Ngày gia nhập
    11 2011
    Bài viết
    8

    Wink Bài tập về sắp xếp các phần tữ trong mảng?

    Mình đang gặp một số rắc rối ở việc sắp xếp trong mảng!
    Nhập vào mảng n phần tử:
    - In ra giá trị các phần tử có giá trị khác nhau trong mảng?
    - Loại bỏ các phần tử có giá trị giống nhau?
    - Cho biết mảng có bao nhiêu số khác nhau?
    - ....
    (viết trong hàm đơn giản nha)
    Nếu có thể, các bạn chỉ nêu cho mình thuật toán (mình muốn tự viết chương trình)?
    còn không thì có thể viết chương trình luôn?
    Vỉ mói học mong các bạn dùng hàm nhập xuất là "printf" và "scanf" !
    THANKS!!!

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

    Bạn đã biết cách duyệt mảng chưa?

    // Giả sử mảng số của bạn là m1, số phần tử n)

    // giải thuật tìm các số lặp lại

    1. Đặt ra một mảng mới m2 dài bằng mảng m1, tất cả các pt là -1 (lưu ý, phải là số âm)
    2. Duyệt mảng số m1, bắt đầu i là 0 cho đến n-1
    3. Đối với mỗi i, lại duyệt mảng số m1, bắt đầu j = i+1 cho đến n-1
    4. Nếu m1[i] == m1[j] thì ghi m2[j] = i (tức là đánh dấu, trị ở j này giống trị ở i)
    5. Hết

    // giải thuật tìm các giá trị khác nhau trong mảng

    1. Duyệt mảng số m1, bắt đầu i là 0 cho đến n-1
    2. Đối với mỗi i, xét pt tương ứng m2[i], nếu < 0 là giá trị khác.
    3. Hết

    // giải thuật loại bỏ các phần tử giống nhau (lặp lại?) trong mảng

    1. lập mảng m3
    2. Duyệt mảng số m1, bắt đầu i là 0 cho đến n-1
    3. Đối với mỗi i, xét pt tương ứng m2[i], nếu < 0 thì chép qua m3
    4. Hết

    // giải thuật cho biết mảng có bao nhiêu số khác nhau

    1. đặt một số đếm dem = 0
    2. Duyệt mảng số m2, bắt đầu i là 0 cho đến n-1, nếu m2[i] < 0 thì tăng dem lên 1.
    4. Hết

    Thử viết đi, bí chỗ nào hỏi tiếp.

  3. #3
    Ngày gia nhập
    11 2011
    Bài viết
    8

    À, mình chưa biết duyệt mảng là gì? bạn có thể nói và viết cho mình 1 đoạn code có duyệt mãng thử! THANKS bạn nhiều

  4. #4
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Trích dẫn Nguyên bản được gửi bởi duynguyen_a3win Xem bài viết
    À, mình chưa biết duyệt mảng là gì? bạn có thể nói và viết cho mình 1 đoạn code có duyệt mãng thử! THANKS bạn nhiều
    "Duyệt" tức là "điểm danh", sờ nó, nhìn nó, lục lọi nó... gọi nôm na là duyệt.
    Duyệt mảng tức là đi qua hết tất cả các phần tử của mảng. Okey, tạm nôm na vậy
    Thế giờ hiểu duyệt mảng là gì rồi chứ

    Mà vẫn chưa biết code gì để duyệt mảng thì vẫn chưa thể làm dc bài sắp xếp mảng đâu.
    Phải đọc lại phần Mảng, duyệt mảng rồi mới sắp xếp được
    Um Mani Padme Hum...!!

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

    Có đến nửa tá cách duyệt mảng

    Duyệt mảng có nghĩa là xét từ phần tử đầu tiên cho đến phần tử cuối cùng của mảng.
    Hầu hết các mảng đều có phần tử đầu tiên ở ví trí 0 (nếu dùng con trỏ thì là địa chỉ của phần tử đầu tiên). Như vậy biết bắt đàu từ đâu chưa?
    Nếu mảng là chuỗi ký tự thì tiêu chuẩn C đặt rằng phần tử cuối sẽ mang giá trị 0 (ký tự '\0') - chịu khó tìm mấy cái đề có từ "chuỗi" sẽ thấy cách duyệt chuỗi.
    Nếu mảng là giá trị khác, vd int, thì thường người ta đặt một biến cho biết số phần tử được sử dụng trong mảng (mảng có thể dài N phần tử, nhưng chỉ sử dụng n trong số này) - chịu khó tìm trong mấy đề bài có từ "mảng" sẽ thấy cách duyệt mảng

    Nếu vẫn không tìm được thì chịu khó lật sách học lại. Căn bản bạn chưa đủ, xin code vô ích.

    tb "THANKS" là cái gì? cám ơn thì nói cám ơn, tôi kỵ tiếng tây tiếng u lắm

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

  1. Lập trình C tìm xem trong mảng số nguyên i_Mang[] có bao nhiêu phần tử có giá trị âm & phần tử có giá trị âm trong mảngn
    Gửi bởi fawker 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: 29-05-2013, 03:28 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. Thủ tục loại bỏ các phần tử trùng nhau, giữ lại duy nhất 1 phần tử trong DSLK
    Gửi bởi mrtyoffline 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: 02-03-2011, 10:27 PM
  4. Thuật toán trên C | Xóa phần tử trong dãy phần tử tăng dần?
    Gửi bởi quangphuit 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: 09-03-2010, 01:57 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