Mảng trong c (Bài 6)
Bài giảng mảng trong c sẽ bắt đầu bằng tình huống “Viết chương trình nhập vào 10 số nguyên rồi tính trung bình cộng”. Với tình huống này, chúng tôi sẽ phân tích tình huống như sau.
Chương trình cần tối thiểu 10 biến kiểu số nguyên tương ứng cho 10 số mà người dùng sẽ nhập vào. Về xử lý nhập, chương trình phải xử lý nhập 10 lần với lệnh scanf.
Và nếu số lượng số cần tính toán nhiều hơn sẽ dẫn đến tình trạng khai báo biến và xử lý nhập dữ liệu trở nên bất cập. Vậy giải pháp đặt ra là gì? Là sử dụng mảng.
Mảng trong C – Mảng là gì
Mảng là một tập gồm nhiều phần tử có cùng kiểu dữ liệu. Ví dụ mảng kiểu int sẽ gồm nhiều phần tử có cùng kiểu int.
Mảng được sử dụng trong các trường hợp như: có nhiều phần tử; các phần tử có cùng đặc điểm. Lấy ví dụ chương trình quản lý danh sách sinh viên => sử dụng mảng sinh viên, …
Mảng trong C – Cú pháp khai báo mảng
Kiểu_Dữ_Liệu Tên_Mảng[Số_Lượng_Phần_Tử];
Ví dụ khai báo mảng để giải quyết yêu cầu của tình huống đã đặt ra ở đầu bài viết như sau
int a[10];
Với khai báo trên
int là kiểu dữ liệu; a là tên mảng và 10 là số lượng phần tử trong mảng, chính là số lượng số nguyên cần tính toán.
Tên mảng đặt theo qui tắc
Không chứa khoảng trắng; Không chứa kí tự đặc biệt; Không trùng với từ khoá và Sử dụng tên gợi nhớ.
Mảng trong C – Truy cập các phần tử của mảng
Thông qua chỉ số; Chỉ số trong lập trình C sẽ bắt đầu từ 0, nghĩa là phần tử thứ nhất có chỉ số là 0, phần tử thứ hai có chỉ số là 1 và cứ như thế cho đến phần tử thứ n sẽ có chỉ số là n-1.
Cú pháp truy cập phần tử của mảng
Tên_Mảng[Chỉ_Số];
Ví dụ truy cập các phần tử của mảng tên a
Cú pháp | Giải thích |
a[0] | Phần tử thứ nhất |
a[6] | Phần tử thứ 5 |
a[9] | Phần tử thứ mấy? Độc giả tự trả lời. |
Mảng trong C – Các thao tác thường gặp trên mảng
Nhập mảng
Vì đặc điểm các phần tử của mảng có cùng kiểu dữ liệu và truy cập các phần tử của mảng thông qua chỉ số nên đối với xử lý mảng chúng ta LUÔN LUÔN sử dụng vòng lặp. Và cụ thể là vòng lặp for vì đã biết trước số lượng phần tử mảng cũng đồng nghĩa với việc biết trước số lần lặp.
for(int i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
Giải thích
Chỉ số | Xử lý nhập | Giải thích |
i = 0 | scanf(“%d”, &a[0]); | Nhập giá trị cho phần tử thứ nhất |
i = 1 | scanf(“%d”, &a[1]); | Nhập giá trị cho phần tử thứ hai |
… | Tương tự như vậy cho các phần tử khác | |
i = 9 | scanf(“%d”, &a[9]); | Nhập giá trị cho phần tử thứ mười |
Hiển thị mảng
for (int i = 0; i < 10; i++) {
printf("%d", a[i]);
}
Tính tổng các phần tử của mảng
int tong = 0;
for (int i = 0; i < 10; i++) {
tong = tong + a[i];
}
printf("Tong cac phan tu cua mang la %d", tong);
Tìm kiếm trên mảng
int x;
printf("Nhap phan tu can tim x = ");
scanf("%d", &x);
for(int i = 0; i < 10; i++) {
if(x == a[i]) {
printf("%d co trong mang", x);
break;
}
}
Nếu x có trong mảng tức x = a[i] thì hiển thị thông báo x có trong mảng và đồng thời kết thúc quá trình tìm kiếm bằng lệnh break. Lệnh break được sử dụng để kết thúc vòng lặp.
Mảng trong C – Tổng kết
- Định nghĩa mảng
- Khai báo mảng
- Nhập mảng
- Hiển thị mảng
- Tính tổng các phần tử trong mảng
- Tìm kiếm trên mảng
Mảng trong C – Bài tập thực hành
Bài thực hành số 1: Viết chương trình tìm phần tử có giá trị nhỏ nhất và lớn nhất trong mảng.
Bài thực hành số 2: Viết chương trình tính tổng các phần tử có giá trị lẻ trong mảng.
Bài thực hành số 3: Cho biết phần tử x xuất hiện bao nhiêu lần trong mảng, với x do người dùng nhập vào.
Bài thực hành số 4: Hiển thị các phần tử có giá trị chia hết cho 3 hoặc cho 5.
Bài thực hành số 5: Cho biết mảng có bao nhiêu phần tử có giá trị nhỏ hơn 0.