📄
字号:
#include "stdafx.h"
int M=23,N=28,P=33;
int day_tap[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
//1.给出年月日,计算该日是该年的第几天(未包括闰年)
int sum_day(int month,int day)
{
int i;
for(i=1;i<month;i++)
day=day+day_tap[i];
return(day);
}
//2.闰年判断
int leap(int year)
{
int leap;
leap=(year%4==0&&year%100!=0)||(year%400==0);
return(leap);
}
//3.给出两年,判断两年间闰年年数(不包括这两年)
int count(int year1,int year2)
{
int k,count=0;
for(k=(year1+1);k<year2;k++)
if(leap(k))
count++;
return(count);
}
//4.在1的基础上添加闰年
int temp(int year,int month,int day)
{
int days;
days=sum_day(month,day);
if(leap(year)&&((month>=3)||(month==2&&day==29)))
days=days+1;
return(days);
}
//5.两数相等判断
int judge(int x,int y)
{
int t;
if(x=y)
t=0;
else
t=1;
return(t);
}
//6.判断高低潮与临界点
int flag(int sum,int m)
{
int p;
if(sum%m<((m+1)/2))
p=-1;
else if(sum%m>((m+1)/2))
p=1;
else
p=0;
return(p);
}
//7.主函数(输入输出,计算两日期间天数,判断下次共同高/低潮日期)
int main(int argc, char* argv[])
{
int year1,month1,day1,year2,month2,day2,x;
int a1,a2,sum;
int days1,days2;
int n;
printf("\n请输入您的生日数(year,month,day):");
scanf("%d,%d,%d",&year1,&month1,&day1);
printf("\n请输入今日日期(year,month,day):");
scanf("%d,%d,%d",&year2,&month2,&day2);
days1=sum_day(month1,day1);
days2=sum_day(month2,day2);
a1=temp(year1,month1,day1);
a2=temp(year2,month2,day2);
sum=a2-a1+365*(year2-year1)+count(year1,year2)+1+judge(a2,days2);
if(flag(sum,M)==-1)
printf("您的体力现在处于高潮期\n");
else if(flag(sum,M)==1)
printf("您的体力现在处于低潮期\n");
else
printf("您的体力现在处于临界点\n");
if(flag(sum,N)==-1)
printf("您的情绪现在处于高潮期\n");
else
printf("您的情绪现在处于低潮期\n");
if(flag(sum,P)==-1)
printf("您的智力现在处于高潮期\n");
else if(flag(sum,P)==1)
printf("您的智力现在处于低潮期\n");
else
printf("您的智力现在处于临界点\n");
printf("\n若要测算三个周期的共同高潮期,请输入-1;\n若要测算三个周期的共同低潮期,请输入1;\n");
scanf("%d",&x);
for(n=1; ;n++)
if(flag((sum+n),M)==x&&flag((sum+n),N)==x&&flag((sum+n),P)==x)
break;
if(x==-1)
printf("您的下一个共同高潮期为%d天后\n",n);
else
printf("您的下一个共同低潮期为%d天后\n",n);
day2=day2+n;
if(leap(year2))
day_tap[2]=day_tap[2]+1;
while(day2>day_tap[month2])
{
day2=day2-day_tap[month2];
month2++;
if(month2>12)
{
month2=month2-12;
year2++;
}
day_tap[2]=28;
if(leap(year2))
day_tap[2]=day_tap[2]+1;
}
printf("那天是(year,month,day):%d,%d,%d\n",year2,month2,day2);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -