C語言找錯

時間 2022-05-28 07:40:07

1樓:匿名使用者

四年一閏,百年不閏,四百年再閏。

規定,公曆年份是整百數的,必須是400的倍數的才是閏年,不是400的倍數的就是平年。

詳見百科的說法:

閏年(leap year),在公曆(格里曆)或夏曆中有閏日的年份,以及在中國舊曆農曆中有閏月的年份。地球繞太陽執行週期為365天5小時48分46秒(合365.24219天)即一回歸年(tropical year)。

公曆的平年只有365日,比回歸年短約0.2422 日,所餘下的時間約為四年累計一天,於第四年加於2月,使當年的歷年長度為366日,這一年就為閏年。現行公曆中每400年有97個閏年。

夏曆的平年只有354日,比12個朔望月短0.3671日,為使每月初一與月朔相合,規定每30年中有11年的年底增加1日,這一年的歷年有355日,即為閏年。中國舊曆農曆作為陰陽曆的一種,每月的天數依照月虧而定,一年的時間以12個月為基準,平年比一回歸年少約11天。

為了合上地球圍繞太陽執行週期即回歸年,每隔2到4年,增加乙個月,增加的這個月為閏月。在加有閏月的那一年有13個月,歷年長度為384或385日,這一年也稱為閏年。

按照每四年乙個閏年計算,平均每年就要多算出0.0078天,這樣經過四百年就會多算出大約3天來,因此,每四百年中要減少三個閏年。所以規定,公曆年份是整百數的,必須是400的倍數的才是閏年,不是400的倍數的就是平年。

也就是我們通常所說的:

四年一閏,百年不閏,四百年再閏。

公曆閏年的簡單計算方法:

設年份 year

if (year能被4整除 and 不能被100整除) or year能被400整除

then 該年為閏年

else 該年為平年

#include "stdio.h"

main()

呵呵,這個問題我那時也是很糊塗的,現在開始給別人講了。

2樓:

x%400==0||x%4==0&&x%100!=0

3樓:紫蝶冰心

if(x%100==0)

if(x%400==0)

printf("%d yes",x);

else

printf("%d no",x);

else

if(x%4==0)

printf("%d yes",x);

else

printf("%d no",x);

4樓:匿名使用者

>x%400==0||x%4==0&&x%100!=0

5樓:

除了等號之外,括號也沒有用好

C語言求問錯哪了

你這個問題不對,要求輸出該字串中大寫字母a到z的子串長度,這個包括頭尾的a和z麼,如果包括,那長度應該是10,這時候應該是return r q 1 也就是10。如果不包括頭尾的a和z,那這時候是return r q 1 也就是8。這種邏輯你自己數一下也數出來了,你看你輸入的字串,a的相對是7,z的位...

c語言程式疑惑(找高手幫忙解釋程式)

大頭 1.為什麼要在定義陣列後就直接輸出printf array a n 這個有什麼意義 答 意義就是提示下面輸出的資料是陣列 a 的資料 迴圈執行printf 5d a i j 將陣列 a 的全部內容輸出。2.程式中有兩處for語句巢狀迴圈,為什麼會有兩次?還有就是第一處的for語句巢狀迴圈得出的...

c語言!!求助,C語言求助!!!

沒什麼問題,兩題給出的答案都是正確的。第2題 後面按c語言要求帶上規定的字元或數字,構成轉義字元,因此要想將 賦給字元變數ch,需要定義為 ch 而不是ch 選項a是錯誤的。其餘選項都是正確的。選a第9題 011表示八進位制數,轉為十進位制數是9,執行printf語句,a,是a先自增1 9 1 10...