2016-11-27 8 views
-2
year = int(input("Enter a year: ")) 
if (year % 4) == 0: 
    if (year % 100) == 0 and (year % 400) == 0: 
     print (year, "IS a leap year.") 
else: 
    print (year, "is NOT a leap year.") 

何らかの理由で、入力後何も印刷されません。誰もがそれを必要とする場合うるう年電卓で出力が出力されない

はここでうるう年のルールのためのリンクです:https://www.wwu.edu/skywise/leapyear.html

+0

コードを実行して任意の数値を入力すると、プログラムはそれに応じて印刷します。 – glls

+4

2番目の 'if'のための' else'条件はありません。したがって、数値が4で割り切れるが、100または400で割り切れない場合、プログラムは何もしません。 –

+0

@gllsそれはいくつかの数字では動作しますが、他の人では機能しません。だから、2000枚の印刷物を入力しても2008年は入力しないと言ってください:/ –

答えて

0

まあ、何も印刷されない理由はちょうど@ジョンとしてあるゴードン氏は言う:あなたのプログラムの中でいくつかの他の条項にを欠場。私は次のコードに変更しました:

year = int(input("Enter a year: ")) 
if (year % 4) == 0: 
    if (year % 100) == 0 and (year % 400) != 0: 
     print (year, "is NOT leap year.") 
    else: 
     print (year, "is a leap year.") 
else: 
    print (year, "is NOT a leap year.") 

年を4で割ることができる場合、それはうるう年かもしれません。その意味では、100で割ることはできますが、400で割ることができない場合は、うるう年ではありません。他の状況ではそうです。単にあなたはいくつかのケースを逃すyear % 4 == 0状況になります。私にとって

、私のコードは次の通常裁判官のうるう年:

def is_leap_year(year): 
    if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0: 
     return True 
    return False 
0

はここで、「Cプログラミング言語の第2版」から取られた私のプログラムです:

year = int(input("Enter a year: ")) 
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0: 
    print "Leap year" 
else: 
    print "Not leap" 

私はルールが上の提供だと思いますあなたが言ったリンクは間違っています。うるう年は4で割り切れる必要があり、ではなく、は100で割り切れる必要があります。ただし、100で割り切れ、400で割り切れる場合は、です。

関連する問題