>>765
  for(y = 1900; y <= 2000; y++) 
1) {if ((y%4 == 0 && y%100 != 0 )||y%400 == 0) 
2) {printf("%d\n", y); 
3) } 
4) } 

1)の { はfor文の始まり、4)の } はfor分の終わり。
つまり1から4までが、forの条件の下に繰り返されるということ。

2)の { はif文の始まり、3)の } はif文の終わり。
つまりifの条件が合えば2から3までが実行されるということ。

ちなみに { } の中が1つの文だけの場合、 { } はいらない。

いちおう丁寧に説明したつもりだけど、これは直感的に理解することだよ。