01/10/2018, 00:15
Hỏi về thuật toán trong pascal/c/c++
mấy bác cho em hỏi làm thế nào để tìm tất cả các vị trí của số lớn nhất trong mảng.
VD: 1 5 6 7 7 3 2 7
số lớn nhất là: 7
các vị trí xuất hiện : 4 5 8
Bài liên quan
chạy vòng lặp đầu tiên để tìm ra số lớn nhất.
chạy vòng lặp nữa để in ra các vị trí có giá trị bằng số lớn nhất đó.
Đầu tiên bạn tạo 1 mảng có thể nhập sẵn
tạo 1 biến 1 biến max (kiểu dữ liệu cùng với mảng)
tạo 1 vòng lặp for để chạy hết cái mảng
gán giá trị đầu tiên của mảng vào biến max
tạo 1 cái if so sánh
nếu giá thứ 2 của mảng > max
max = vi tri so do
Sau đó tiếp tục tạo 1 vòng lặp để tiếp tục tìm vị trí giá trị lớn nhất
if giá trị tại vị trí i == max thì t ghi lại giá trị
chạy đến hết chương trình ta được các vị trí
mình viết bằng C++ đây.
hey có lỗi
srand nằm trong thư viện stdlib.h (hay cstdlib)
tớ dùng DevC++, chạy ổn
mà cái srand hay rand đấy tớ dùng để khởi tạo mảng số test thôi, xóa đi rồi nhập test bằng tay là được mà
bạn viết giùm mình cái đoạn tìm các vị trí bằng pascal được không, mình viết mãi mà không được
bạn viết tương tự như bạn Quang minh ở phía trên ấy
chỉ cần chạy 1 vòng lặp là đủ rồi,
Đầu tiên bạn tạo 1 mảng có thể nhập sẵn
tạo 1 biến 1 biến max (kiểu dữ liệu cùng với mảng) và 1 mảng chứa vị trí max
tạo 1 vòng lặp for để chạy hết cái mảng
gán giá trị đầu tiên của mảng vào biến max
tạo 1 cái if so sánh
nếu giá trị từ vị trí thứ 2 của mảng > max thì max = giá trị tại vị trí đó đồng thời reset mảng chứa vị trí max. add vị trí mới đó vào mảng chứa vị trí max. Nếu giá trị từ vị trí thứ 2 của mảng = max add vị trí đó vào mảng chứa vị trí max
khi xong hết vòng lặp ta được mảng chứa các vị trí bằng với max
mã giả.
Bạn ơi bạn dùng hàm clear, đó là thư viện có sẵn. còn như pascal hay C thì chủ thớt yêu cầu có lẽ khó à nha