題目:
描述
KiKi想獲得某年某月有多少天,請(qǐng)幫他編程實(shí)現(xiàn)。輸入年份和月份,計(jì)算這一年這個(gè)月有多少天。
輸入描述:
多組輸入,一行有兩個(gè)整數(shù),分別表示年份和月份,用空格分隔。
輸出描述:
針對(duì)每組輸入,輸出為一行,一個(gè)整數(shù),表示這一年這個(gè)月有多少天。
題目要求通過(guò)輸入年份和月份,計(jì)算出該年該月有多少天。我們可以使用C語(yǔ)言編寫一個(gè)程序來(lái)實(shí)現(xiàn)這個(gè)功能。
首先,我們需要明確一些規(guī)則:
- 閏年的判斷規(guī)則:能被4整除但不能被100整除,或者能被400整除的年份是閏年。
- 每個(gè)月的天數(shù):1月、3月、5月、7月、8月、10月和12月有31天;4月、6月、9月和11月有30天;2月的天數(shù)與年份是否為閏年有關(guān),閏年為29天,非閏年為28天。
下面是一個(gè)示例代碼,演示如何通過(guò)C語(yǔ)言實(shí)現(xiàn)計(jì)算某年某月有多少天的函數(shù):
#include <stdio.h>
#include <stdbool.h>
bool isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return true;
}
return false;
}
int getMonthDays(int year, int month) {
if (month == 2) {
if (isLeapYear(year)) {
return 29;
} else {
return 28;
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
return 30;
} else {
return 31;
}
}
int main() {
int year, month;
printf("請(qǐng)輸入年份和月份(用空格分隔):");
scanf("%d %d", &year, &month);
int days = getMonthDays(year, month);
printf("%d年%d月有%d天\n", year, month, days);
return 0;
}
在上述代碼中,我們定義了兩個(gè)函數(shù):isLeapYear
和getMonthDays
。
isLeapYear
函數(shù)用于判斷某年是否為閏年。根據(jù)閏年的判斷規(guī)則,我們使用條件語(yǔ)句來(lái)判斷年份是否滿足閏年的條件,如果滿足則返回true
,否則返回false
。
getMonthDays
函數(shù)用于計(jì)算某年某月有多少天。根據(jù)每個(gè)月的天數(shù)規(guī)則,我們使用條件語(yǔ)句來(lái)判斷月份,并結(jié)合isLeapYear
函數(shù)來(lái)判斷2月的天數(shù)。根據(jù)判斷結(jié)果,返回相應(yīng)的天數(shù)。
在main
函數(shù)中,我們首先從用戶輸入中獲取年份和月份。然后,調(diào)用getMonthDays
函數(shù)來(lái)計(jì)算該年該月的天數(shù),并將結(jié)果打印出來(lái)。
這個(gè)程序可以處理多組輸入,用戶可以多次輸入年份和月份進(jìn)行計(jì)算。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-829903.html
希望這篇博客能夠幫助你理解如何通過(guò)C語(yǔ)言解決KiKi想獲得某年某月有多少天的問(wèn)題。如果有任何疑問(wèn),請(qǐng)隨時(shí)向我提問(wèn)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-829903.html
到了這里,關(guān)于C語(yǔ)言——oj刷題——獲取月份天數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!