Bài tập thực hành: Đếm số lần xuất hiện của từng phần tử trong mảng - Lập trình C - Code Block
Bài tập thực hành:
Nhập vào một mảng.
Cho biết: Từng phần tử của mảng xuất hiện bao nhiêu lần trong mảng.
In ra danh sách gồm 2 cột: Giá trị phần tử và số lần xuất hiện
1. Tham khảo cách làm 1 tại đây:
2. Tham khảo cách làm 2 tại đây:
Cách giải quyết
Khai
báo 1 mảng để lưu trữ những phần tử nào đã in để về sau khi gặp lại sẽ bỏ qua
Với
mỗi phần tử, bổ sung thêm các việc như sau:
Nếu
phần tử đó chưa có trong danh sách đã in thì mới thực hiện các việc sau:
● Đi đếm
số lượng phần tử (như cách làm trước)
● Sau khi
in xong, sẽ thực hiện thêm 2 việc:
○ Đưa phần
tử này vào danh sách đã in
○ Tăng số
lượng phần tử đã in lên
...
làm thế nào
ReplyDeletedễ mà
Deletekho qua
ReplyDeletenhu nao a
ReplyDeletegiải luôn đi ạ
ReplyDeleteCách làm của Ngọc:
ReplyDeleteLần lượt duyệt qua từng phần tử trong mảng đã cho, với mỗi phần tử đó sẽ thực hiện:
+ Khởi tạo 1 biến đếm cho bằng 0
+ Chạy từ đầu đến cuối mảng đã cho để kiểm tra:
+ Nếu gặp phần tử nào bằng thì biến đếm tăng lên 1.
+ In ra phần tử + số lần sau đó xuống dòng
--> Có được không?
int soluong = 0;
Deletefor (int i = 0;i<n;i++)
{
soluong = 0;
for (int j = 0; j<n; j++)
{
if (ds[i] == ds[j])
{
soluong = soluong+1;
}
}
//In ra
printf("Gia tri [%d] xuat hien [%d] lan\n",ds[i], soluong);
}
mỗi giá trị lặp lại bị in ra nhiều lần
ReplyDeleteĐúng.
DeleteCần có cách lưu lại những phần tử đã in để không phải in lại nữa