LATEST

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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*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.

1
2
3
4
5
/*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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#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ả:

bai29 01 PNG

Chương trình C++:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#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ả:

bai29 02 PNG

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!!!

Cùng chuyên mục:

Xóa node khỏi cây nhị phân tìm kiếm

Xóa node khỏi cây nhị phân tìm kiếm

Tìm node Max và Min trong cây nhị phân tìm kiếm

Tìm node Max và Min trong cây nhị phân tìm kiếm

Xuất node con và node lá trong cây nhị phân tìm kiếm

Xuất node con và node lá trong cây nhị phân tìm kiếm

Tìm kiếm trên cây nhị phân tìm kiếm

Tìm kiếm trên cây nhị phân tìm kiếm

Duyệt cây nhị phân tìm kiếm

Duyệt cây nhị phân tìm kiếm

Thêm node vào cây nhị phân tìm kiếm

Thêm node vào cây nhị phân tìm kiếm

Cây nhị phân (Binary tree) là gì? Cơ chế hoạt động của nó

Cây nhị phân (Binary tree) là gì? Cơ chế hoạt động của nó

Cách gộp hai danh sách liên kết đôi

Cách gộp hai danh sách liên kết đôi

Tìm kiếm phần tử trong DSLK đôi

Tìm kiếm phần tử trong DSLK đôi

Xóa node trong DSLK đôi

Xóa node trong DSLK đôi

Chèn node (Insert node) vào DSLK đôi

Chèn node (Insert node) vào DSLK đôi

Duyệt danh sách liên kết đôi

Duyệt danh sách liên kết đôi

Tạo node mới trong DSLK đôi

Tạo node mới trong DSLK đôi

DSLK đôi là gì? Cấu trúc dữ liệu của DSLK đôi

DSLK đôi là gì? Cấu trúc dữ liệu của DSLK đôi

Quản lý sinh viên bằng DSLK đơn

Quản lý sinh viên bằng DSLK đơn

Tìm kiếm và sắp xếp trong DSLK đơn

Tìm kiếm và sắp xếp trong DSLK đơn

Xóa node (Delete node) trong DSLK đơn

Xóa node (Delete node) trong DSLK đơn

Chèn node (Insert node) vào DSLK đơn

Chèn node (Insert node) vào DSLK đơn

Tạo node mới trong DSLK đơn

Tạo node mới trong DSLK đơn

Cấu trúc dữ liệu của DSLK đơn

Cấu trúc dữ liệu của DSLK đơn