Bài tập lập trình c có lời giải năm 2024
Bài viết này mình sẽ hướng dẫn các bài tập liên quan tới tần suất và các giá trị khác nhau trong mảng. NỘI DUNG
main 1.Đếm Các Phần Tử Khác Nhau Đếm các giá trị khác nhau trong mảng có nhiều thuật toán có thể giải quyết, trong bài này mình sẽ hướng dẫn các bạn cách giải quyết dễ tiếp cận nhất. Trong các bài sau mình sẽ hướng dẫn thêm các phương pháp khác tối ưu hơn. Thuật toán :
Ví dụ mảng A[] = {1, 3, 4, 5, 5, 2, 4, 8, 1, 2, 3} Xét chỉ số i = 4, khi đó A[i] = 5 và các phần tử trong đoạn trước A[i] là {1, 3, 4, 5} ta thấy A[i] bằng với 1 phần tử trong đoạn trước nó nên sẽ không đếm thêm 1 giá trị khác nhau trong mảng. Xét chỉ số i = 5, khi đó A[i] = 2 và các phần tử đứng trước A[i] là {1, 3, 4, 5, 5,} không có phần tử nào giống với A[i] nên khi A[i] xuất hiện ta sẽ có thêm 1 giá trị khác nhau trong mảng. Code : include "stdio.h"include "math.h"int main(){ }Output : So luong gia tri khac nhau trong mang : 5 2. Liệt Kê Các Giá Trị Khác Nhau Trong Mảng Thuật toán để liệt kê các giá trị khác nhau trong mảng bạn tương tự như thuật toán trong mục 1, ở đây mình liệt kê theo thứ tự xuất hiện trong mảng. Nếu bạn muốn liệt kê theo thứ tự từ bé đến lớn thì bạn cần sắp xếp mảng trước khi áp dụng thuật toán này. Code : include "stdio.h"include "math.h"int main(){ }Output : 1 3 4 5 2 3. Tần Suất Của Phần Tử Trong Mảng Bài toán yêu cầu các bạn liệt kê các giá trị xuất hiện trong mảng kèm theo số lần xuất hiện của nó. Thuật toán giải quyết bài này tương tự với ở mục 1, mình sẽ hướng dẫn các bạn 2 cách. Cách 1 không dùng thêm mảng phụ và cách 2 thì cần thêm 1 mảng phụ để truy vết. |