Bài tập số 18: Đếm số phần tử khác nhau trong mảng một chiều với ngôn ngữ C/C++. Bài toán giúp bạn hoàn thiện hơn ngôn ngữ lập trình của mình.
Tóm Tắt
1. Giới thiệu bài toán
Đề bài :
Viết hàm đếm số lượng các phần tử khác nhau trong mảng 1 chiều a có n phần tử. Ví dụ: 1 6 2 3 2 4 2 6 5 ==> Có 6 phần tử khác nhau là 1 6 2 3 4 5.
Một bài toán cần vận dụng khá nhiều kiến thức và kỹ năng lập trình để xử lý. Giải được bài toán này, chính tỏ kỹ năng và kiến thức lập trình C / C + + trong thao tác với mảng tương đối vững .
2. Giải quyết bài toán
Để giải được bài toán nhu yếu bạn đọc nắm vững kỹ năng và kiến thức về vòng lặp for và mảng, bài này cần vận dụng nhiều hơn những bài tập khác .
2.1 Ý tưởng giải quyết bài toán
Ý tưởng giải bài này của mình khá trừu tượng :
Tách các phần tử khác các phần tử còn lại ra mảng thứ 2. Số phần tử của mảng thứ 2 chính là số phần tử khác nhau trong mảng ban đầu.
Có thể bạn chưa biết cách tách, rồi so sánh xem phần tử khác nhau kiểu gì, từ từ mình sẽ lý giải nhé !
Mình sẽ viết hàm trả về số lượng phần tử khác nhau. Nếu thích bạn hoàn toàn có thể in luôn những phần tử khác nhau giống với đề bài .
Trong hàm cần khai báo những thứ sau :
- Một khai báo mảng b (tối đa n phần tử cho đỡ tốn bộ nhớ)
- Một biến x =1 là số phần tử ban đầu
Mình sẽ gán phần tử đầu tiên của mảng b là phần tử đầu tiên của mảng a để thực hiện so sánh. b[0]=a[0]
Cho vòng lặp for chạy từ vị trí 1 tới cuối mảng a .
Trong vòng lặp for ta tiến hành so sánh a[i] với các phần tử trong mảng b bằng một vòng lặp for và một biến đếm. Nếu biến đếm này =0 tức là không có phần tử giống. Tiến hành thêm phần tử vào mảng b và tăng x.
Đọc thì có vẻ khó hiểu nhưng bạn xem code bên dưới là hiểu ngay nhé !
2.2 Hàm đếm số phần tử khác nhau trong mảng
Dựa trên ý tưởng sáng tạo của mình bên trên, mình code hàm đếm số phần tử khác nhau sau :
int Count(int a[], int n){ int b[n]; int x=1; b[0]=a[0]; for(int i=1;iHàm trả về giá trị là số phần tử khác nhau trong mảng . Nếu bạn muốn viết hàm đưa ra giá trị và in những phần tử khác nhau thì đơn thuần, thêm hàm xuat mảng là được. ( Mình sẽ sửa ở phần chương trình hoàn hảo cho bạn xem ) . 2.3 Chương trình đếm số phần tử khác nhau trong mảng
Bạn thêm phần nhập xuất mảng để làm việc với mảng, tùy chỉnh kết quả theo ý thích của bạn nhé!
Code C + + tìm hiểu thêm : ( quan tâm code C chỉ cần sửa một chút ít về cú pháp câu lệnh nhập xuất là được )#includeusing namespace std; void nhap(int a[], int &n){ do{ cout<<("Nhap n: "); cin>>n; } while(n<2||n>99); for(int i=0; i >a[i]; } } void xuat(int a[], int n){ for(int i=0;i Kết quả của chạy chương trình trên : Bài viết đến đây là hết, rất mong nhận được ý kiến đóng góp, đánh giá bài viết của mình để hoàn thiện hơn.
Xem tiếp bài 19: Tìm phần tử xuất hiện nhiều nhất trong mảng
Xem lại bài 17: Chèn phần tử x vào vị trí k trong mảng
Tải về 67 đề cương bài tập lập trình C/C++
Source: https://final-blade.com
Category: Kiến thức Internet