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.

/*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ả:

bai29 01 PNG

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ả:

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:

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán tính lũy thừa trong C / C++

Thuật toán tính lũy thừa trong C / C++

Top