分析:
在一维数组里初始化12个月份,在进行判断是不是闰年,是闰年就把数组的二月的下标改为29,否则不变就按照平年计算,最后把想要计算的月份减1累加到sum里,在进行计算该月份的天也要累加。例如:输入2024年2月10日–>>加上1月的再加上2月的10天
代码
int nian(int x)
{
///1.能被4整除,但不能被100整除
///2.能被400整除
if ((x % 4 == 0) && (x % 100 != 0) || (x % 400 == 0))
{
return 1;
}
else
{
return 0;
}
}
int main22()
{
int year = 0;
int month = 0;
int day = 0;
int sum = 0;
scanf("%d %d %d", &year, &month, &day);
int arr[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31};
/// 1 2 3 4 5 6 7 8 9 10 11 12
/// 这里吧第一个下表置为1就是为了方便好计算,能对应1~12月的数字
int y = nian(year);
if ( y == 1)
{
arr[2] = 29;
}
for (int i = 1; i < month; i++)
{
sum += arr[i];
}
for (int j = 0; j < day; j++)
{
sum = sum++;
}
printf("%d年%d月%d日是今年的第【%d】天", year, month, day, sum);
return 0;
}
小优化: