高斯的日记
高斯出生于1777年4月30日,在他的日记本上记录了5343,表示他出生后过了多少天,5343这一天就是1791年12月15日,要求编程输入第8113天,输出年月日的形式#include<stdio.h>
int main()
{
int year,i,j,sum1,sum2;
sum1=0;
sum2=214;//214表示1777年五月到十二月天数总和
int mouth[11];//一年12个月
int month[7];//1777年的7个月
printf("请输入距离出生的天数:");
scanf("%d",&j);
if(int year=1777)
{ int month[7]={31,30,31,31,30,31,30};
for(i=0;i<=6;i++)
{
sum1=sum1+month[i];//计算总和
if((j-sum1)<31&&(j-sum1)>0) break;//如果累加到j-sum1<一个月的时间,弹出来
}
printf("1777\t","%d\t","%d\t",i+5,(j-sum1));//输出年,月,日
}
for(year=1778;year<=1807;year++)//从1778年到1807年,因为题目的天数在8000多天,因此可以将年限定在30年以内
{
if(year%4==0&&year%100!=0||year%400==0)//判断是否为闰年
{
int mouth[11]={31,29,31,30,31,30,31,31,30,31,30};
}
else
{
int mouth[11]={31,28,31,30,31,30,31,31,30,31,30};
}
if(year>=1778&&year<=1807)
{
for(year=1778;year<=1807;year++)
for(i=0;i<=11;i++)
{
sum2=sum2+mouth[i];//计算总和
if((j-sum2)<31&&(j-sum2)>0) break;//如果累加到j-sum1<一个月的时间,弹出来
}
}
}
printf("%d\t","%d\t","%d\t",year,i+1,(j-sum2));//输出年,月,日
return 0;
}
自己想出来的思路应该没问题,可就会运行不到正确结果。
[此贴子已经被作者于2018-12-27 13:12编辑过]