後輩が受けた入社試験でこういうものがあったそうですが確かに日本語的におかしいと思ったので問題提起します。

以下の問題についておかしいと思いませんか?
*あくまで日本語の話です。うるう年がおかしいのではないです。

うるう年の問題について
    「以下の条件からうるう年の判定プログラムを作成しろ」というものです。*プログラミング言語はなんでも良いです。
    1、西暦で示した年が4で割り切れる年はうるう年です
    2、西暦で示した年が100で割り切れる年はうるう年ではありません
    3、西暦で示した年が400で割り切れる年はうるう年です

これは本当に原文のままだそうです。
私自身探してみると、実際に、こういう文面で載っている本やサイトもありますね。
http://www.geekpage.jp/programming/c/leap-year.php  とか
https://qiita.com/Solpha/items/225dc090499bebda8ddd とか


この問題が出た時、西暦200年はうるう年になりますか?
4で割り切れますよ?

おかしくないですか?

何がおかしいかというと
    1と2が矛盾していて、2と3が矛盾している。
        だから、正解できるには解いたことがないといけないか、4年に1回くる以外のうるう年の条件を知らないといけない。
            =経験を見ている?
     日本語の文章として矛盾していないか?
        上と下の文章のどちらを優先するのか?を明記していないし、そんなルールはない。
        番号が振ってあろうとそれは関係ない。(むしろ番号が優先順位を示している可能性すらあるので、その場合は1>2>3の順に優先される。その場合、200年はうるう年。それに、1,2,3が逆順に書いてあったらそれは判定変わりますか?さすがに変わりませんよね?)
こんな矛盾した文章を僕が書いたら先生にめちゃくちゃ怒られますよ。

これならわかる表現
  (1) 西暦の年が 4 で割り切れる年は原則として「うるう年」
  (2) ただし、100で割り切れたら「平年」とする
  (3) しかし、400で割り切れるなら「うるう年」とする 
  (1) 西暦の年が 4 で割り切れる年は原則として「うるう年」
  (2) 4で割り切れたとしても、100で割り切れたら「平年」とする
  (3) 100で割り切れたとしても、400で割り切れるなら「うるう年」とする

こういった提供される日本語に矛盾があるので、学生も矛盾したフレーズを使うようになるんですよね。「あ、これでも良いんだ」みたいな。
こんな矛盾した文章を僕が書いたら先生にめちゃくちゃ怒られますよ。

追記:わざわざ書いてあることは優先するっていうルールがあるらしいですw(僕はあまり好きではありせん。わかりづらいので。)
というのも、4で割り切れる→100で割り切れるのは当たり前
その状況でわざわざ「100で割り切れる年はうるう年ではありません」と書いてある。
だから、「優先する」らしいです。
ということは、書いてある内容の範囲が大きい小さいも関係があるんですかね。。
わざわざ小さい範囲を書いたのでっていう。
4で割り切れる「大きな範囲」の中の100で割り切れる「小さい範囲」のことを優先するみたいな。