|
Tham chiếu phần tử mảng
Phần lớn tính hữu ích của mảng đến từ thực tế là các phần tử của nó có thể được truy cập riêng lẻ.
Cách để làm điều này là sử dụng một chỉ số để đánh số các phần tử.
NHỚ!
ĐÁNH SỐ Mảng TRONG C BẮT ĐẦU TỪ SỐ KHÔNG.
(Đây là điều bắt buộc — bạn phải bắt đầu lại từ đầu. Điều này đặc biệt quan trọng cần nhớ)
Ví dụ truy cập mảng A:
x = (A[3] + 5)*A[1]; // đọc giá trị của A[3] và A[1]
A[0] = x + 6; // ghi giá trị mới vào A[0]
Hãy phân tích chương trình làm việc với các phần tử của mảng.
#include <iostream>
sử dụng không gian tên std;
chủ yếu()
{
int i=1, A[5];
A[0] = 23; // đến từng phần tử trong số 5 phần tử của mảng (chỉ số từ 0 đến 4)
A[1] = 12; // ghi một giá trị cụ thể
A[2] = 7;
A[3] = 43;
A[4] = 51;
A[2] = A[i] + 2*A[i-1] + A[2*i]; // đổi giá trị của phần tử có chỉ số 2 thành kết quả của biểu thức
//vì i=1 nên thay giá trị của biến i vào biểu thức ta được
//biểu thức tiếp theo A[2] = A[i] + 2*A[0] + A[2];
cout << A[2]+A[4];
}
Kết quả của việc thực hiện chương trình này, giá trị của phần tử mảng có chỉ số 2 bằng116sẽ xuất hiện trên màn hình.Như bạn có thể thấy từ ví dụ, chúng ta có thể truy cập bất kỳ phần tử nào của mảng mảng. Và cũng tính toán số lượng phần tử cần thiết bằng các công thức khác nhau (ví dụ: như trong chương trình A[i-1] hoặc A[2*i], trong những trường hợp này, chỉ số của các phần tử sẽ được tính toán và phụ thuộc vào giá trị của i.)
Hãy xem một chương trình ví dụ
#include<iostream>
sử dụng không gian tên std;
chủ yếu()
{
const int N = 5;
int A[N];
x = 1;
cout << A[x-3]; // tham chiếu đến phần tử A[-2]
A[x+4]=A[x]+A[2*(x+1)]; // sau khi thay x vào biểu thức và phép tính ta được dòng sau: A[5] = A[1]+A[ 4];
...
}
Bởi vì mảng được khai báo có 5 phần tử, nghĩa là các phần tử sẽ được đánh số từ 0 đến 4. Ta thấy chương trình truy cập đến các phần tử không tồn tại: A[-2] và A[5]
Hóa ra chương trình đã vượt quá giới hạn của mảng
Mảng ngoài giới hạn đang truy cập một phần tử có chỉ mục không tồn tại trong mảng.
Trong những trường hợp như vậy, chương trình thường gặp sự cố với lỗi thời gian chạy
Hãy thử tự mình làm việc với các phần tử mảng. Hoàn thành nhiệm vụ
Lặp qua các phần tử mảng
Khi làm việc với mảng, bạn thường phải làm việc với tất cả các phần tử của mảng cùng một lúc.
Việc lặp lại các phần tử bao gồm việc duyệt qua tất cả phần tử của một mảng và thực hiện cùng một thao tác trên mỗi phần tử đó.< mã>
Để làm điều này, thường sử dụng một vòng lặp với một biến thay đổi từ 0 thành N-1 ( N số phần tử mảng ).
...
const int N = 10;
int A[N];
cho (i = 0; i < N; i++)
{
// thao tác trên phần tử A[i]
}
...
Trong vòng lặp chỉ định, biến i sẽ nhận các giá trị 0, 1, 2, ..., N-1 . Nghĩa là, ở mỗi bước của vòng lặp, chúng ta truy cập một phần tử mảng cụ thể với chỉ số i .
Vì vậy, chỉ cần viết ra những việc cần làm với một phần tử của mảng A[i] và đặt các hành động này vào trong một vòng lặp như vậy là đủ.
Nhiệm vụ
Điền vào mảng bằng N số tự nhiên đầu tiên. Những thứ kia. khi kết thúc chương trình, các phần tử của mảng sẽ trở nên bằng nhau:
A[0] = 1;
A[1] = 2;
A[2] = 3;
...
A[N-1] = N;
Dễ thấy quy luật: giá trị của phần tử mảng phải lớn hơn chỉ số của phần tử đó 1 đơn vị.
Chu kỳ sẽ như thế này:
cho (i=0; i<N; i++)
{
A[i] = i+1;
}
|
|