Tìm kiếm phần tử trong mảng C / C++
Trong bài viết này, codehow sẽ hướng dẫn các bạn cách tìm kiếm phần tử trong mảng C / C++. Đây là dạng bài tập giúp các bạn làm quen với việc thao tác mảng trong C / C++.
Tìm kiếm phần tử trong mảng, nghĩa là chúng ta sẽ duyệt qua các phần tử, xem có giá trị nào bằng giá trị cần tìm hay không. Nếu có thì in ra vị trí nó đang nằm trong mảng để người dùng biết.
Ví dụ: Mình có mảng Number = {1, 4, 5, 7}, bây giờ muốn tìm xem 7 có trong mảng hay không. Khi đó ta cần duyệt qua từng phần tử trong mảng, đầu tiên là số 1, không phải nên bỏ qua. Tiếp đến số 4 rồi số 5 và cuối cùng là số 7.
Vậy làm thế nào để viết chương trình tìm kiếm phần tử trong mảng C / C++, hãy cùng mình bắt đầu ngay thôi nhé.
Tìm kiếm phần tử trong mảng C / C++
Để tìm kiếm phần tử trong mảng C / C++, đầu tiên chúng ta cần tạo hàm find_element_index()
để tìm kiếm phần tử của một mảng. Bên trong hàm sử dụng vòng lặp for để lặp từng phần tử và so sánh với giá trị cần tìm kiếm.
/*Tạo hàm tìm vị trí phần tử trong mảng C++*/ void find_element_index(const int* array, size_t size, int x){ int result[100], count = 0; for (size_t i = 0; i < size - 1; ++i) { if (array[i] == x) { result[count] = i; ++count; } } //liệt kê các vị trí phần tử xuất hiện trong mảng printf("Phần tử %d xuât hiện tại các vị trí sau: ",x); show_array(result, count); }
Tiếp đến tạo hàm show_array()
để hiển thị danh sách các phần tử trong mảng ra màn hình.
/*Tạo hàm in phần tử trong mảng*/ void show_array(int array[], int length){ for(short i = 0; i < length; i++) printf("%d ",array[i]); printf("\n"); }
Trong hàm main()
, yêu cầu người dùng nhập vào số lượng và giá trị cho các phần tử. Sau đó gọi hàm find_element_index()
và truyền các tham số tương ứng bao gồm: mảng, số lượng phần tử, giá trị cần tìm.
int main(){ int i,x, count, number[20]; printf("Nhập số lương phần tử trong mảng:"); scanf("%d", &count); printf("\nNhập giá trị cho từng phần tử trong mảng:\n"); for (i = 0; i < count; ++i) scanf("%d", &number[i]); printf("Nhập giá trị cần tìm kiếm: "); scanf("%d", &x);; //tìm vị trí phần tử trong mảng C++ find_element_index(number,count,x); printf("\n-------------------------------\n"); printf("Chương trình này được đăng tại codehow.net"); return 0; }
Dưới đây là hai chương trình mình đã viết sẵn bằng hai ngôn ngữ khác nhau C và C++, các bạn có thể tham khảo nhé.
Chương trình C:
#include <stdio.h> /*Tạo hàm in phần tử trong mảng*/ void show_array(int array[], int length){ for(short i = 0; i < length; i++) printf("%d ",array[i]); printf("\n"); } /*Tạo hàm tìm vị trí phần tử trong mảng C++*/ void find_element_index(const int* array, size_t size, int x){ int result[100], count = 0; for (size_t i = 0; i < size - 1; ++i) { if (array[i] == x) { result[count] = i; ++count; } } //liệt kê các vị trí phần tử xuất hiện trong mảng printf("Phần tử %d xuât hiện tại các vị trí sau: ",x); show_array(result, count); } int main(){ int i,x, count, number[20]; printf("Nhập số lương phần tử trong mảng:"); scanf("%d", &count); printf("\nNhập giá trị cho từng phần tử trong mảng:\n"); for (i = 0; i < count; ++i) scanf("%d", &number[i]); printf("Nhập giá trị cần tìm kiếm: "); scanf("%d", &x);; //tìm vị trí phần tử trong mảng C++ find_element_index(number,count,x); printf("\n-------------------------------\n"); printf("Chương trình này được đăng tại codehow.net"); return 0; }
Kết quả:
Chương trình C++:
#include <iostream> using namespace std; /*Tạo hàm in phần tử trong mảng*/ void show_array(int array[], int length){ for(short i = 0; i < length; i++) cout << array[i] <<' '; cout << endl; } /*Tạo hàm tìm vị trí phần tử trong mảng C++*/ void find_element_index(const int* array, size_t size, int x){ int result[100], count = 0; for (size_t i = 0; i < size - 1; ++i) { if (array[i] == x) { result[count] = i; ++count; } } //liệt kê các vị trí phần tử xuất hiện trong mảng cout << "Phần tử "<< x <<" xuât hiện tại các vị trí sau: "; show_array(result, count); } int main(){ int i,x, count, number[20]; cout<<"Nhập số lương phần tử trong mảng: "; cin>>count; cout<<"\nNhập giá trị cho từng phần tử trong mảng:\n"; for (i = 0; i < count; ++i) cin>>number[i]; cout<<"Nhập giá trị cần tìm kiếm: "; cin>>x; //tìm vị trí phần tử trong mảng C++ find_element_index(number,count,x); cout<<"\n-------------------------------\n"; cout<<"Chương trình này được đăng tại codehow.net"; return 0; }
Kết quả:
Như vậy là chúng ta đã cùng nhau thực hiện chương trình tìm kiếm phần tử trong mảng C / C++. Các bạn có thể luyện tập cùng codehow tại serries bài tập C / C++, cảm ơn các bạn rất nhiều!!!