閏年的判斷?
C語言如何判斷是閏年,閏年判斷條件
不等價,因為判斷閏年的標準是:1、能整除4且不能整除100 2、能整除400
你的意思是:
每4年有個閏年<——>1896是閏年,4年後1900也是閏年<——>除以4就是閏年
但嚴格上講,"每4年一個閏年"這說法不嚴謹。應該是四年一閏,百年不閏,四百年再閏。
為什麼呢?
1、產生閏年原因:地球繞太陽執行週期為365天5小時48分46秒(合365.24219天)即一回歸年(tropical year)。公曆的平年只有365日,比迴歸年短約0.2422 日,所餘下的時間約為四年累計一天,故四年於2月加1天,使當年的歷年長度為366日,這一年就為閏年。
2、但是,上面演算法又有了一個問題。就是0.2422*4=0.9688,比一天還差0.0322天,每4年差0.0322天不算多,但每400年就會差了約3天。即是說,假如每4年一個閏年,那麼每400年就會有100個閏年,然後會多算了3天。
所以,就規定了每四百年中要減少三個閏年。公曆年份是整百數的,必須是400的倍數的才是閏年,不是400的倍數的,雖然是100的倍數,也是平年。
綜合以上2點,就有了現有的閏年判斷標準。
C語言 判斷閏年
scanf("%d",&year);這掉了一個&
C語言程式設計問題,如何判斷是否為閏年?
#include
int main(void)
{
int n;
while (scanf("%d",&n),n!=0)
{
if(n%4==0&&n%100!=0||n%400==0) //判斷是否為閏年
{
printf("%d ",n);
}
else
{
continue;
}
}
return 0;
}
判斷是否為閏年!!!
我點一下:閏年的條件是滿足下列二者條件之一:年號能被4整除、但不能被100整除,二是年號能被4整除,又能被400整除。
要構造一個關係表示式:(year%4==0)&&((year%100!=0)||(year%400!=0))。使程式簡潔一些,儘量少巢狀!
對於路徑你可以用#include "stdio.h",好象用<>與""還是有所不同,提醒中文的標點和西文標點是不同的,一些編譯不成功也可能與這有關。
用JAVA判斷是否是閏年
import java.util.*;
class RN
{ public boolean check(int year)
{
if((year%4 == 0)&&((year%100 != 0)|(year%400 == 0)))
{ return true;
}
else
{ return false;
}
}
}
public class Test
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
RN s=new RN();
System.out.println("Please input year ?");
if(s.check(sc.nextInt()))
{ System.out.println("This year is Run Nian");
}
else
{ System.out.println("This year is not Run Nian");
}
}
}
這個是OK的,是不是你沒有匯入應有的包啊,import java.util.*;
因為Scanner屬於util包
c++,編寫一個程式,判斷某一年是否為閏年。
#include
using namespace std;
int main()
{
bool leapyear(int year);
int year;
bool leap;
cout<<"請輸入年份:";
cin>>year;
getchar();
leap =leapyear(year);
if (leap)
cout<
else
cout <
cout<<"a leap year"<
getchar();
return 0;
}bool leapyear(int year){
bool leap;
if (year%4==0)
{ if(year%100==0)
{ if(year%400==0)
leap=true;
else
leap=false;}
else
leap=true;
}
else
leap=false;return leap;}