1. Trang chủ
  2. » Thể loại khác

C05-Kieu du lieu mang

56 144 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 56
Dung lượng 462,65 KB

Nội dung

Chương KIỂU DỮ LIỆU MẢNG Hà Nội – 2014 Nội dung 12/12/17 Mảng chiều Mảng nhiều chiều Chương 5- Kiểu liệu mảng 2/56 5.1 Mảng chiều 12/12/17 Khái niệm Khai báo Truy xuất liệu kiểu mảng Một số toán mảng chiều Chương 5- Kiểu liệu mảng 3/56 Đặt vấn đề  Ví dụ  Chương trình cần lưu trữ số nguyên? => Khai báo biến int a1, a2, a3;  Chương trình cần lưu trữ 100 số nguyên? => Khai báo 100 biến kiểu số nguyên!  Người dùng muốn nhập n số nguyên? => Không thực được!  Giải pháp  12/12/17 Kiểu liệu cho phép lưu trữ dãy số nguyên dễ dàng truy xuất Chương 5- Kiểu liệu mảng 4/56 5.1.1 Khái niệm  12/12/17 Khái niệm  Là kiểu liệu có cấu trúc người lập trình định nghĩa  Biểu diễn dãy biến có kiểu Ví dụ: dãy số nguyên, dãy ký tự…  Kích thước xác định khai báo không thay đổi  C định khối nhớ liên tục cho biến kiểu mảng Chương 5- Kiểu liệu mảng 5/56 5.1.2 Khai báo  Khai báo tường minh []; [][]…[];   12/12/17 , …, : số lượng phần tử chiều Lưu ý  Phải xác định cụ thể (hằng) khai báo  Mảng nhiều chiều: = N1*N2*…*Nn  Bộ nhớ sử dụng = *sizeof()  Một dãy liên tục có số từ đến -1 Chương 5- Kiểu liệu mảng 6/56 Khai báo tường minh (tt)  Ví dụ int Mang1Chieu[10]; 9 Mang1Chieu int Mang2Chieu[3][4]; Mang2Chieu 12/12/17 Chương 5- Kiểu liệu mảng 7/56 10 11 Khai báo không tường minh  Cú pháp  Không tường minh (thông qua khai báo kiểu) typedef []; typedef []…[]; ;  Ví dụ typedef int Mang1Chieu[10]; typedef int Mang2Chieu[3][4]; Mang1Chieu m1, m2, m3; Mang2Chieu m4, m5; 12/12/17 Chương 5- Kiểu liệu mảng 8/56 Số phần tử mảng  Phải xác định cụ thể số phần tử lúc khai báo, không sử dụng biến thường int n1 = 10; int a[n1]; const int n2 = 20; int b[n2];  Nên sử dụng thị tiền xử lý #define để định nghĩa số phần tử mảng #define n1 10 #define n2 20 int a[n1]; //  int a[10]; int b[n1][n2]; //  int b[10][20]; 12/12/17 Chương 5- Kiểu liệu mảng 9/56 Khởi tạo giá trị cho mảng lúc khai báo  Gồm cách sau  Khởi tạo giá trị cho phần tử mảng int a[4] = {2912, 1706, 1506, 1904}; a  2912 1706 1506 1904 Khởi tạo giá trị cho số phần tử đầu mảng int a[4] = {2912, 1706}; a 12/12/17 2912 1706 0 Chương 5- Kiểu liệu mảng 10/56 5.2.3 Truy xuất đến phần tử  Thông qua số [][]  Ví dụ  Cho mảng chiều sau: 1 int a[3][4];  12/12/17 Các truy xuất  Hợp lệ: a[0][0], a[0][1], …, a[2][2], a[2][3]  Không hợp lệ: a[-1][0], a[2][4], a[3][3] Chương 5- Kiểu liệu mảng 42/56 Gán giá trị cho mảng  Không sử dụng phép gán thông thường mà phải gán trực tiếp phần tử = ; //sai [][chỉ số 2]=;  Ví dụ int a[5][10], b[5][10]; b = a; // Sai int i, j; for (i = 0; i < 5; i++) for (j = 0; j < 10; j++) b[i][j] = a[i][j]; 12/12/17 Chương 5- Kiểu liệu mảng 43/56 5.2.4 Một số toán       12/12/17 Nhập mảng Xuất mảng Tìm kiếm phần tử mảng Kiểm tra tính chất mảng Tìm giá trị nhỏ nhất/lớn mảng … Chương 5- Kiểu liệu mảng 44/56 Nhập mảng chiều  Yêu cầu   Nhập vào từ bàn phím mảng a gồm m dòng, n cột Ý tưởng  Khai báo mảng chiều có dòng tối đa MAXD, số cột tối đa MAXC (dùng #define để định nghĩa) 12/12/17  Nhập số dòng m số cột n thực mảng  Nhập phần tử từ [0][0] đến [m-1][n-1] Chương 5- Kiểu liệu mảng 45/56 Nhập mảng chiều  Đoạn chương trình nhập vào từ bàn phím mảng chiều a gồm m dòng, n cột #define MAXD 100 #define MAXC 100 int a[MAXD][MAXC]; int main() { printf(“Nhap so dong, so cot cua ma tran: ”); scanf(“%d%d”, &m, &n); int i, j; for (i=0; i

Ngày đăng: 09/12/2017, 02:54

TỪ KHÓA LIÊN QUAN

w