Một mảng nhiều chiều được khai báo dạng <tên mảng> <kiểu phần tử> <d> <size1> ... <sized>, trong đó kiểu phần tử ∈{int,float,bool,string}, d là số chiều, và mỗi sizei là kích thước chiều thứ i (chỉ số hợp lệ theo chiều đó chạy từ 0 đến sizei−1). Ngoài ra có bảng các biến đơn kiểu int hoặc float dùng làm chỉ số.
Với mỗi biểu thức truy cập phần tử mảng dạng tên[idx1][idx2]...[idxd] (mỗi idxi là một hằng số nguyên hoặc tên một biến đơn đã khai báo), trình biên dịch kiểm tra tuần tự:
tên đã được khai báo — nếu chưa: lỗi.int (hằng số nguyên hoặc biến kiểu int; biến/hằng kiểu float dùng làm chỉ số là lỗi kiểu).Nếu tất cả các bước hợp lệ, in ra kiểu phần tử cơ sở của mảng; nếu vi phạm bất kỳ bước nào, in ra ERROR.
Ví dụ
Input:
1
arr int 2 3 4
1
i int
2
arr[1][2]
arr[i][0]
Output:
int
int
<tên mảng> <kiểu> <d> <size1> ... <sized>.<tên biến> <kiểu> (kiểu int hoặc float).tên[idx1][idx2]... (không có khoảng trắng).In ra q dòng kết quả (kiểu phần tử cơ sở hoặc ERROR), theo đúng thứ tự truy vấn.
Ví dụ:
Đầu vào:
1
arr int 2 3 4
1
i int
2
arr[1][2]
arr[i][0]
Đầu ra:
int
int
Đầu vào:
1
arr int 2 3 4
0
2
arr[5][0]
arr[0][4]
Đầu ra:
ERROR
ERROR
Đang tải editor...