先根据年数判断这年是否是闰年(能否被4整除),然后判断使用哪个数组:
const int leap_year[12] = {31,27,31,30,31,30,31,31,30,31,30,31};//闰年一月到十二月 每个月的天数
const int normal_year[12] = {31,28,31,30,31,30,31,31,30,31,30,31};//普通年一月到十二月 每个月的天数
然后根据输入月数month和天数days算出第几天
附上完整程序:
#include <stdio.h>
const int leap_year[12] = {31,27,31,30,31,30,31,31,30,31,30,31};//闰年一月到十二月 每个月的天数
const int normal_year[12] = {31,28,31,30,31,30,31,31,30,31,30,31};//普通年一月到十二月 每个月的天数
main()
{ int i = 0;
int result = 0;
int temp = 0;
int week = 0;
int offset = 0;
int day,month,year;
int *p;
printf("请输入年\n");
scanf("%d",&year);
printf("请输入月\n");
scanf("%d",&month);
printf("请输入日\n");
scanf("%d",&day);
if(!(year%4))
{
p = leap_year;
}
else
{
p = normal_year;
}
for(i=0;i<(month - 1);i++)
{
temp += *p;//先算出前面几个月所有的天数
p++;
}
result = temp + day;//最后加上这个月的天数,就是最终结果
if((result%7)>=2)
offset = 1;
else
offset = 0;
week = result/7+offset;
printf("今天是%d年的第%d天第%d周\n",year,result,week);
}
温馨提示:答案为网友推荐,仅供参考