程序功能:输入某个日期的年、月、日,程序计算出该日期为该年的第几天。
#include <stdio.h>
/* 函数leap用于判断该年是否为闰年 */
int leap(int a)
{
if (a%4 == 0 && a%100 != 0 || a%400 ==0)
{
return 1;
}
else
{
return 0;
}
}
/* 函数number用于计算输入的日期为第几天 */
int number(int year, int m, int d)
{
int sum = 0, i;
int a[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; /* 存放平年每月的天数*/
int b[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };/* 存放闰年每月的天数 */
if (leap(year)==1) /* 判断是否为闰年 */
{
for (i = 0; i < m - 1; i++)
sum += b[i];
}
else
{
for (i = 0; i < m - 1; i++)
sum += a[i];
}
sum += d;
return sum;
}
void main()
{
int year, month, day, n;
printf("请输入年月日:\n");
scanf("%d%d%d", &year, &month, &day);
n = number(year, month, day);
printf("第%d天", n);
}
运行结果:
注:本算法引用自清华大学出版社《C语言经典编程282例》书中的例程。