Tìm kiếm một phần tử trong mảng C | Laptrinhcanban.com

Tìm kiếm một phần tử trong mảng C

Hướng dẫn cách tìm kiếm một phần tử trong mảng C. Bạn sẽ học được cách tạo hàm tìm vị trí phần tử trong mảng C sau bài học này.

Tìm kiếm một phần tử trong mảng C

Để tìm kiếm một phần tử trong mảng C, ví dụ như tìm phần tử có giá trị x trong mảng chẳng hạn, chúng ta cần tạo một vòng lặp để lấy từng phần tử trong mảng ra và đối chiếu với giá trị x đó.

Nếu tìm thấy phần tử giống x, thì vị trí của x chính là số index của phần tử được tìm thấy.

Và chúng ta viết hàm tìm vị trí phần tử trong mảng C trong chương trình như sau:

#include <stdio.h>

/*Tạo macro SIZE_OF_ARRAY để lấy độ dài (số phần tử) của mảng chỉ định*/
#define SIZE_OF_ARRAY(array) (sizeof(array)/sizeof(array[0]))

/*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("Phan tu %d xuat hien tai cac vi tri sau:\n", x);
show_array(result, count);
}

int main(void){
int array[] = {1,1,2,3,2,5,5,8,9,6};

//tìm vị trí phần tử trong mảng C
find_element_index(array,SIZE_OF_ARRAY(array),3);
find_element_index(array,SIZE_OF_ARRAY(array),5);


return 0;
}

Kết quả phép tìm phần tử có giá trị x trong mảng như sau:

Phan tu 3 xuat hien tai cac vi tri sau:
3
Phan tu 5 xuat hien tai cac vi tri sau:
5 6

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách tìm kiếm một phần tử trong mảng C rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.