Chương 4: Mảng một chiều. Sau khi học xong chương này người học có thể hiểu được: Khái niệm mảng một chiều, khai báo mảng một chiều, khai báo và gán giá trị cho mảng, truy xuất giá trị của mảng, truyền mảng vào hàm,... Mời các bạn cùng tham khảo.
Khái niệm mảng chiều Mảng tập hợp biến có kiểu liệu nằm liên tiếp nhớ tham chiếu tên chung tên mảng Mỗi phần tử mảng tham chiếu thông qua mục (index) Khái niệm mảng chiều Nếu mảng có n phần tử phần tử có mục phần tử cuối có mục n-1 Để tham chiếu đến phần tử ta dùng tên mảng mục phần tử đặt cặp dấu [] Ví dụ: a[0] Khái niệm mảng chiều Số phần tử mảng gọi kích thước mảng, ln cố định, phải xác định trước không đổi suốt trình thực chương trình Nên định nghĩa trước số phần tử tối đa mảng đầu chương trình Ví dụ: #define MAX 100 Khai báo mảng chiều Cú pháp: [] Ví dụ: int a[100]; //Khai bao mang so nguyen a gom 100 phan tu float b[50]; //Khai bao mang so thuc b gom 50 phan tu char str[30]; //Khai bao mang ky tu str gom 30 ky tu Khai báo gán giá trị cho mảng Gán phần tử Ví dụ: int a[5] = {3, 6, 8, 1, 12}; Giá trị 12 Vị trí Gán toàn phần tử có giá trị Ví dụ: int a[8] = {3}; Giá trị 3 3 3 3 Vị trí Truy xuất giá trị mảng Cú pháp: Ví dụ: [] void main() { Vị trí số int a[5] = {3, 6, 8, 11, 12}; printf(“Giá trị mảng vị trí = %d“,a[3]); } Kết quả: Giá trị mảng vị trí = 11 Truyền mảng vào hàm Khi mảng dùng đối số để truyền cho hàm, địa mảng truyền vào tham số hình thức Truyền mảng vào hàm mặc định truyền tham chiếu Những thay đổi đến giá trị phần tử mảng thân hàm ảnh hưởng đến mảng gốc Các thao tác mảng Nhập giá trị cho mảng Xuất (liệt kê) Tìm kiếm Đếm Sắp xếp Kiểm tra mảng thỏa điều kiện cho trước Tách/ ghép mảng Chèn / xóa Nhập giá trị cho mảng Hàm nhập mảng void NhapMang (int a[], int n) { for (int i = 0; i < n; i ++) { printf(“a[%d]=“,i); scanf(“%d”,&a[i]); } } Tìm kiếm phần tử mảng Mẫu 2: Tìm vị trí phần tử có giá trị x (nếu x không tồn mảng trả -1) int TimVTX(int a[], int n, int x) { for (int i = 0; i < n; i++) if (a[i] == x) return i; return -1; } Kiểm tra mảng theo điều kiện cho trước Kiểm tra tồn tại: phần tử mảng thỏa điều kiện cho trước tìm phần tử thỏa điều kiện bool KiemTraTonTai(int a[], int n) { for (int i = 0; i