Cách nhập mảng 1 chiều trong c++

Ở bài học trước, mình đã chia sẻ cho các bạn về khái niệm và cách sử dụng MẢNG MỘT CHIỀU TRONG C++ [Arrays].

Hôm nay, mình sẽ giới thiệu cho các bạn về Các thao tác trên mảng một chiều trong C++.

Nội dung

Để đọc hiểu bài này tốt nhất các bạn nên có kiến thức cơ bản về:

Trong bài ta sẽ cùng tìm hiểu các vấn đề:

  • Truyền mảng vào hàm [passing arrays to functions]
  • Nhập và xuất mảng 1 chiều
  • Sao chép mảng 1 chiều
  • Tìm kiếm phần tử trong mảng
  • Sắp xếp mảng 1 chiều
  • Thêm và xóa một phần tử trong mảng

Truyền mảng vào hàm [passing arrays to functions]

Trong bài TRUYỀN GIÁ TRỊ CHO HÀM [Passing Arguments by Value], bạn đã biết khi một biến truyền vào hàm theo phương pháp truyền giá trị, C++ sẽ sao chép giá trị của đối số vào tham số của hàm. Vì tham số hàm là 1 bản sao, nên việc thay đổi giá trị tham số không làm thay đổi giá trị đối số ban đầu.

Đối với kiểu dữ liệu mảng, việc sao chép 1 số lượng lớn các phần tử sẽ gây tốn rất nhiều vùng nhớ và giảm hiệu suất. Nên khi truyền mảng vào hàm, tham số của hàm chính là địa chỉ vùng nhớ của phần tử đầu tiên trong mảng. Vì vậy, mảng có thể thay đổi nội dung sau khi thực hiện hàm

Lưu ý khi truyền mảng vào hàm:

  • Tham số kiểu mảng trong khai báo hàm giống như khai báo biến mảng.
void NhapMang[int a[100]];
  • Tham số kiểu mảng truyền cho hàm chính là địa chỉ của phần tử đầu tiên của mảng.
    • Có thể bỏ số lượng phần tử hoặc sử dụng con trỏ.
    • Mảng có thể thay đổi nội dung sau khi thực hiện hàm.
void NhapMang[int a[]];
void NhapMang[int *a];
  • Số lượng phần tử thực sự truyền qua biến khác.
void NhapMang[int a[100], int n];
void NhapMang[int a[], int n];
void NhapMang[int *a, int n];

Tất cả các ví dụ bên dưới sẽ sử dụng phương pháp truyền mảng vào hàm.

Nhập và xuất mảng 1 chiều

Bên dưới là ví dụ về nhập, xuất dữ liệu cho mảng 1 chiều:

#include 
#include  // for srand[] and rand[]
#include  // for time[]
using namespace std;

// định nghĩa số phần tử mảng
#define MAX 1000

// khai báo prototype
void nhapMang[int arr[], int &n];
void xuatMang[int arr[], int n];

int main[]
{
	int myArray[MAX]; // mảng myArray có MAX phần tử
	int nSize; // nSize là số phần tử được sử dụng, do user nhập

	// nhập xuất mảng tự động
	nhapMang[myArray, nSize];
	xuatMang[myArray, nSize];

	return 0;
}

// hàm nhập mảng
void nhapMang[int arr[], int &n]
{
	// khởi tạo số ngẫu nhiên
	srand[time[NULL]];

	cout > n;

	// khởi tạo ngẫu nhiên từng phần tử từ chỉ số 0 đến n – 1
	for [int i = 0; i < n; i++]
	{
		arr[i] = rand[];
	}
}

// hàm xuất mảng
void xuatMang[int arr[], int n]
{
	// xuất từng phần tử cho mảng từ chỉ số 0 đến n – 1
	for [int i = 0; i < n; i++]
	{
		cout 

Chủ Đề