这个代码主要是需要注意:
- 该年是不是闰年
- 闰年的2月和非闰年的2月
其余就没有什么了,看代码:
#include<stdio.h>
int leap(int a)
{
if ((a % 4 == 0 && a % 100 != 0) || (a % 400 == 0))
return 1;
else
return 0;
}
int number(int year, int month, int day)
{
int sum = 0;
int a[] = { 31, 28, 31, 30, 31, 30, 31, 30, 31, 30, 31 };
int b[] = { 31, 29, 31, 30, 31, 30, 31, 30, 31, 30, 31 };
if (leap(year))
{
for (int i = 0; i < month - 1; i++)
{
sum += b[i];
}
}
else
{
for (int i = 0; i < month-1; i++)
{
sum += a[i];
}
}
sum += day;
return sum;
}
int main()
{
int year, month, day, n;
printf("请输入年:月:日\n");
scanf("%d %d %d", &year, &month, &day);
n = number(year, month, day);
printf("第%d天\n", n);
system("pause");
}
注意一点闰年的判断条件:能被4整除但不能被100整除,或者能被400整除。代码已经过调试,如有问题,还请指出。