Tại sao khi duyệt từ cuối dãy lại phải trừ 1 đơn vị?

Tại sao khi duyệt từ cuối dãy lại phải trừ 1 đơn vị vậy ạ . Nếu em không trừ đi thì sẽ sai hoàn toàn cả bài ạ.Các bác giúp em với ạ.Em cảm ơn

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a,b; cin >> a >> b;
	for(int i = b - 1; i >= a; i--){
		if( i % 3 == 0){
			cout << i <<" ";
		}
	}
}
for(int index = start; index>= end; index--){
    // do something
}

Rõ ràng index nếu dùng để duyệt dãy thì giá trị của index phải nằm trong khoảng index của dãy. Tức là index phải trong khoảng >=0 và < array.size.
Trong quá trình duyệt ngược từ cuối lên thì index giảm dần. start là giá trị lớn nhất có thể dùng để truy cập. Tức là start = array.size - 1;

1 Like

Để /me viết lại câu hỏi theo một cách khác để bạn chủ topic hiểu nhé:

Tại sao khi đi từ trường em về nhà lại phải rẽ trái vậy ạ.
Nếu em không rẽ trái thì sẽ không về đến nhà ạ. Các bác giúp em với ạ.
Em cảm ơn

Code ví dụ: Trường học --- đi thẳng --- rẽ trái --- đi thẳng --- Nhà
2 Likes

Bạn hiểu chỉ số mảng truy xuất thế nào thì bạn sẽ hiểu tại sao nó vậy.
Nó đơn giản như việc bạn đếm ngón tay thôi. Chỉ khác là từ 0 chứ không phải 1.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?