Mảng 1 chiều là tập hợp các phần tử có cùng kiểu dữ liệu. Giả sử bạn muốn lưu n số nguyên để tính trung bình, bạn không thể khai báo n biến để lưu n giá trị rồi sau đó tính trung bình.
Ví dụ 1 : bạn muốn tính trung bình 10 số nguyên nhập vào từ bàn phím, bạn sẽ khai báo 10 biến: a, b, c, d, e, f, g, h, i, j có kiểu int và lập thao tác nhập cho 10 biến này như sau:
printf(“Nhap vao bien a: “); scanf(“%d”, &a); 10 biến bạn sẽ thực hiện 2 lệnh trên 10 lần, sau đó tính trung bình: (a + b + c + d + e + f + g + h + i + j)/10
Điều này chỉ phù hợp với n nhỏ, còn đối với n lớn thì khó có thể thực hiện được. Vì vậy, khái niệm mảng được sử dụng
1 Khai báo
Ví dụ 2 : int ia[10]; với int là kiểu của mảng, ia là tên mảng, 10 là số phần tử của mảng, tức mảng ia có tối đa 10 phần tử
hoặc :
int a[] = {1,2,3,4};
Ý nghĩa: Khai báo một mảng số nguyên gồm 10 phần tử, mỗi phần tử có kiểu int.
Các phần tử của mảng ia được mô tả như sau:
Từ ví dụ 2 ta có cú pháp khai báo mảng như sau:
Tên_kiểu tên_biến[spt];
Diến giải:
– Tên_kiểu là tên của kiểu dữ liệu mà bạn muốn khai báo cho mảng
– Tên_biến là tên của mảng mà bạn muốn khai báo
– Spt: là số phần tử tối đa của mảng mà bạn muốn khai báo hay còn gọi là kích thức của mảng
2 Tham chiếu đến từng phần tử mảng
Sau khi mảng được khai báo, mỗi phần tử trong mảng đều có chỉ số để tham chiếu. Chỉ số bắt đầu từ 0 đến n-1 (với n là kích thước mảng). Trong ví dụ 2, ta khai báo mảng 10 phần tử thì chỉ số bắt đầu từ 0 đến 9.
Như vậy, để truy xuất đến phần tử thứ i trong mảng ia ta viết ia[i], trong đó i chỉ được phép nhận một trong các giá trị từ 0 đến 9 vì mảng ia được khia báo chỉ có 10 phần tử
3 Nhập dữ liệu cho mảng
Mảng là một dãy các phần tử có cùng kiểu dữ liệu, việc nhập dữ liệu cho từng phần tử của mảng cũng giống như nhập dữ liệu cho biến thông thường
Ví dụ 3 nhập mảng bằng vòng lặp
for (i = 0; i < 10; i++) //vòng for có giá trị i chạy từ 0 đến 9 { printf(“Nhap vao phan tu thu %d: “, i + 1); scanf(“%d”, &a[i]); }
Ví dụ 4: Viết chương trình nhập vào n số nguyên. Tính và in ra trung bình cộng.
#include <stdio.h> #include <conio.h> int main() { int ia[50], i, in, isum = 0; printf(“Nhap vao gia tri n: “); scanf(“%d”, &in); //Nhap du lieu vao mang for(i = 0; i < in; i++) { printf(“Nhap vao phan tu thu %d: “, i + 1); scanf(“%d”, &ia[i]); //Nhap gia tri cho phan tu thu i } //Tinh tong gia tri cac phan tu for(i = 0; i < in; i++) isum += ia[i]; //cong don tung phan tu vao isum printf(“Trung binh cong: %.2fn”, (float) isum/in); getch(); }
kết quả :
Nhap vao gia tri n: 4 Nhap vao phan tu thu 1: 2 Nhap vao phan tu thu 2: 5 Nhap vao phan tu thu 3: 6 Nhap vao phan tu thu 4: 8
4 Đọc dữ liệu từ mảng
Việc đọc dữ liệu của mảng chúng ta cần chỉ rõ là cần đọc dữ liệu của phần tử thứ mấy trong mảng
Ví dụ 5:
for(i = 0; i < 10; i++) printf(“%3d “, ia[i]);
5 Sử dụng biến mảng
Ngoài kiểu int, bạn có thể khai báo mảng kiểu char, float, double…
Ví dụ 6: char cloai[20]; float ftemp[10];
Cách tham chiếu, nhập dữ liệu, đọc dữ liệu thực hiện như trên.