A. 寫一個程序,提示用戶輸入年、月、日,程序計算並輸出該日是該年的第幾天.(提示:如
關鍵在於判斷年份是否是閏年,閏年要加一天。月份天數用數組保存,將已過去的月份的天數加起來,加上本月的天數就得到了答案。
#include<stdio.h>
using namespace std;
int months[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
bool IsRunNian(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
//(1)不是世紀年,能被4整除並且不能被100整除;(2)世紀年,能被400整除
return true;
else
return false;
}
int main() {
int year = 0, month = 0, day = 0;
int howmanydays = 0;
scanf("%d,%d,%d", &year, &month, &day);
if (month < 3)//月份小於2
printf("%d\n", 31 + day);
else { //月份大於2時
for (int i = 0; i < month - 1; i++) howmanydays += months[i];
if (IsRunNian(year)) {//是閏年
printf("%d\n", howmanydays + day + 1);
} else {//不是閏年
printf("%d\n", howmanydays + day);
}
}
return 0;
}