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;
}