Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
810,5 KB
Nội dung
Mảng - Array Mảng – Array Một số tính chất Khai báo mảng C Truy xuất thành phần Truyền tham số kiểu mảng cho hàm Một số thao tác sở Mảng nhiều chiều Mảng – Một số tính chất Mảng kiểu liệu có cấu trúc người lập trình định nghĩa Dùng biểu diễn đối tượng liệu dạng dãy thành phần có kiểu với – kiểu sở NNLT C định khối nhớ liên tục cho biến kiểu mảng Kích thước mảng xác định khai báo không thay đổi Mảng – Khai báo C typedef kiểucơsở Tênkiểu[Sốthànhphần]; kiểu thành phần số, số thành phần tối đa mảng lập trình viên đặt tên typedef int AINT[100]; //AINT kiểu mảng biểu diễn dãy gồm 100 thành phần int AINT a; //a: biến kiểu AINT Mảng – Ví dụ #define #define SIZE SIZE int int a[5]; a[5]; 10 10 // // aa dãy dãy gồm gồm 55 số số nguyên nguyên long long int int big[100]; big[100];// // big: big: chiếm chiếm 400 400 bytes! bytes! double double d[100]; d[100]; long long double double // // d: d: chiếm chiếm 800 800 bytes! bytes! v[SIZE];// v[SIZE];// v:10 v:10 long long doubles doubles Mảng – Ví dụ int int double double short short long long a[5] a[5] d[100] d[100] primes[] primes[] b[50] b[50] == == == == {{ {{ {{ {{ 10, 10, 20, 20, 30, 30, 1.5, 1.5, 2.7}; 2.7}; 1, 1, 2, 2, 3, 3, 5, 5, 00 }; }; compiler xác định kích thước gồm thành phần int ii == 7; int 7; const const int int cc == 5; 5; int a[i]; int a[i]; double double d[c]; d[c]; short primes[]; short primes[]; khởi trị cho thành phần 40, 40, 50}; 50}; 7, 7, 11, 11, 13}; 13}; cách nhanh để khởi trị tất thành phần thành phần khởi trị, phần lại: Mảng – Truy xuất phần tử Các thành phần mảng truy xuất thông qua số chúng size-1 Thao tác truy xuất không kiểm tra giới hạn số int int main() main() {{ int int a[6]; a[6]; int int ii == 7; 7; a[0] a[0] == 59; 59; a[5] a[5] == -10; -10; a[i/2] a[i/2] == 2; 2; a[6] a[6] == 0; 0; a[-1] a[-1] == 5; 5; return return 0; 0; }} a Truyền tham số Mảng cho hàm Tham số kiểu mảng truyền cho hàm địa phần tử mảng Số thành phần tham số mảng để trống Số thành phần thực sử dụng phải truyền qua tham số khác (vd: size) int int add_elements(int add_elements(int a[], a[], int int size) size) {{ int int add_elements(int add_elements(int *p, *p, int int size) size) {{ Ví dụ #include #include void voidsum(long sum(long [], [], int); int); int int main(void) main(void) {{ long long primes[6] primes[6] == {{ 1, 1, 2, 2, 3, 3, 5, 5, 7, 7, 11 11 }; }; sum(primes, sum(primes, 6); 6); printf("%li\n", printf("%li\n", primes[0]); primes[0]); return return 0; 0; }} void voidsum(long sum(long a[], a[], int int sz) sz) {{ int int i; i; long long total total == 0; 0; for(i for(i == 0; 0; ii 0)&&(a[pos-1]>X); (pos>0)&&(a[pos-1]>X); pos pos ) ) a[pos] a[pos] == a[pos a[pos –– 1]; 1]; a[pos] a[pos] == X; X; NN ++; ++; Mảng – Loại bỏ thành phần liệu Bài toán: loại bỏ thành phần liệu X khỏi mảng a có N thành phần Hướng giải quyết: xác định vị trí X, tìm thấy dồn phần tử phía sau lên để lấp vào chỗ trống trường hợp: Dãy khơng có thứ tự: lấp phần tử cuối lên Dãy thứ tự: dời tất phần tử sau ví trí X lên trước vị trí Mảng – Loại bỏ X khỏi dãy tăng Loại khỏi (a, 8) pos 12 15 STOP N=7 X Tìm vị trí 5 Ok, found Dồn vị trí 4, 5, 6, lên