題組內容
四、請寫出下列 C 語言算式: (每小題 15 分,共 30 分)
⑵假設 year 為整數變數。根據西元曆法,小於 4000 的西元年,若可以為 400 整除或 是可以被 4 整除但不被 100 整除的西元年份者為閏年。請寫一個 C 語言算式 (expression) ,算式值為真表示 year 年為小於 4000 的閏年,反之則否。
詳解 (共 3 筆)
詳解
#include
#include
#include
int main(void)
{
int year;
scanf("%d", &year);
if(year%4==0 && year%10!=0)
{
return 1;
}
else
{
return 0;
}
}
詳解
根據題目要求,一個年份是閏年的條件是:該年份小於4000,並且要麼能被400整除,要麼能被4整除但不能被100整除。這個條件可以使用C語言中的邏輯運算符來實現。下面是對應的C語言表達式:
c
Copy code
int isLeapYear = (year < 4000) && ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0));
這個表達式使用了邏輯AND (&&) 和邏輯OR (||) 運算符,以及相等 (==) 和不等 (!=) 比較運算符來檢查year是否符合閏年的條件。如果year是小於4000的閏年,isLeapYear變量的值將為1(真),否則為0(假)。
Copy code
int isLeapYear = (year < 4000) && ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0));
這個表達式使用了邏輯AND (&&) 和邏輯OR (||) 運算符,以及相等 (==) 和不等 (!=) 比較運算符來檢查year是否符合閏年的條件。如果year是小於4000的閏年,isLeapYear變量的值將為1(真),否則為0(假)。
詳解
int year;
int b=0;
if (year<4000) {
if (year%400==0 ||(year%4==0 && year%100 <>0)) {
b=1;
}
}
if (b==0){
return 0;
}else{
return 1;
}