Bài giảng cung cấp các kiến thức giúp người học có thể trình bày được các kiểu dữ liệu mảng một chiều, các thao tác nhập/ xuất mảng, kỹ thuật tìm kiếm, liệt kê giá trị trong mảng. nội dung chi tiết. | Bài giảng Lập trình C: Bài 5 - Võ Đức Hoàng Lập trình C Bài 5. Mảng một chiều Võ Đức Hoàng Email: Website: Cập nhật: 8/2018 1 Mục tiêu 1. Kiểu dữ liệu mảng một chiều 2. Các thao tác nhập/ xuất mảng 3. Kỹ thuật tìm kiếm, liệt kê giá trị trong mảng 2 KHÁI NIỆM • Mảng được cấp phát bộ nhớ liên tục và bao gồm nhiều biến thành phần • Các thành phần của mảng là tập hợp các biến có cùng KDL và cùng tên Giá trị 0 1 2 3 4 5 6 7 8 9 Vị trí Vị trí được tính từ 0 3 KHAI BÁO < Kiểu dữ liệu > < Tên mảng > [ < Số phần tử tối đa của mảng> ] ; • 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 Nên định nghĩa hằng số MAX ở đầu chương trình –kích thước tối đa của mảng - như sau: #define MAX 100 int main() { int a[MAX], b[MAX]; //Các lệnh return 0; } 4 KHAI BÁO VÀ GÁN GIÁ TRỊ BAN ĐẦU CHO MẢNG Gán từng phần tử int a[5] = {3, 6, 8, 1, 12}; Giá trị 3 6 8 1 12 Vị trí 0 1 2 3 4 Gán toàn bộ phần tử có cùng giá trị int a[8] = {3}; Giá trị 3 3 3 3 3 3 3 3 Vị trí 0 1 2 3 4 5 6 7 5 TRUY XUẤT GIÁ TRỊ TênMảng [vị trí cần truy xuất] int main() Vị trí 3 { int a[5] = {3, 6, 8, 11, 12}; printf(“Gia tri mang tai vi tri 3 = “, a[3]); getch(); return 0; } Kết quả: Gia tri mang tai vi tri 3 = 11 6 CÁC THAO TÁC TRÊN MẢNG • Nhập • 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 7 NHẬP XUẤT MẢNG a[0] a[1] a[2] a[3] a[4] a[5] a[n-1] Nhập a[0] Nhập a[1] Nhập a[2] Nhập a[i], 0 NHẬP/ XUẤT MẢNG #define MAX 100 void NhapKichThuoc(int &n) { printf("Nhap vao kich thuoc mang: "); scanf("%d", &n); } void NhapMang(int a[], int n) { for (int i = 0; i < n; i++) { printf("* Nhap vao phan tu tai vi