c语言中的一道算法题(小明结识帅哥还是美女的问题)

小明从2006年1月1日开始,每三天结识一个美女两天结识一个帅哥,编程实现当输入2006年1月1日之后的任意一天,输出小明那天是结识美女还是帅哥

(注意润年问题)(C语言)

算法的主要部分

//输入天数,输出是否结识美女或帅哥
Pro(GetDays(y,m,d));
}
void Pro(int days)
{
if(days%2==0)
{
printf("结识帅哥\n");
}
if(days%3==0)
{
printf("结识美女\n");
}
if(days%2!=0&&days%3!=0)
{
 printf("没结识\n"); 
}
else if(days%2==0&&days%3==0)
{
printf("结识美女+帅哥\n");
}
}


//获取2006年1月1日至当前日期的所有天数
int GetDays(int year,int month,int day)
{
int i;
int sum_daysofyear=0;
int sum_daysofmonth=0;
int allday=0;
for(i=2006;i<year;i++) 
{
sum_daysofyear+=Getdaysofyear(i);
}
sum_daysofmonth=Getdaysofmonth(year,month);
allday=sum_daysofyear+sum_daysofmonth+day;
return allday;


//判断闰年 返回该年包含的天数
int Getdaysofyear(int year)
{
if(year%4==0&&year%100!=0)
{
return 366; 
}
else if(year%400==0)
{
return 366;
}
else
{
return 365;
}

//获取当前月 总天数
int Getdaysofmonth(int year,int month) 
{
int i;
int sum_daysofmonth=0;
//每月的天数
int yearMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31} ;
//每月天数 闰年 
int leapyearMonths[12]={31,29,31,30,31,30,31,31,30,31,30,31};
//如果是闰年 计算当前月的总天数
if(year%4==0&&year%100!=0)
{
for(i=1;i<month;i++)
{
sum_daysofmonth+=leapyearMonths[i-1];
}
return sum_daysofmonth;

else if(year%400==0)
{
for(i=1;i<month;i++)
{
sum_daysofmonth+=leapyearMonths[i-1];

return sum_daysofmonth;
}
//如果不是闰年
else
{
for(i=1;i<month;i++)
{
sum_daysofmonth+=leapyearMonths[i-1];

return sum_daysofmonth;

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值