黑马程序员技术交流社区

标题: 小明从2006年1月1日开始,每三天结识一个美女两天结识一... [打印本页]

作者: 古月文阳    时间: 2015-11-27 20:03
标题: 小明从2006年1月1日开始,每三天结识一个美女两天结识一...
#include <stdlib.h>
#include <stdlib.h>  
//最终输出函数  输入天数 输出是否结识帅哥或美女//最终输出函数  输入天数 输出是否结识帅哥或美女  
void Proc(int days);  
//获取从2006年1月1日至当前日期的所有天数  
int GetDays(int year,int month,int day);  
//判断 year年中的天数 判断闰年问题  
int Getdaysofyear(int year);  
//返回当前年中至该月 有多少天  
int Getdaysofmonth(int year,int month);  
  
int main(void)  
{  
    //定义年月日 变量并获取用户输入  
    int y,m,d;  
    printf("请输入年:\n");  
    scanf("%d",&y);  
    printf("请输入月:\n");  
    scanf("%d",&m);  
    printf("请输入日:\n");  
    scanf("%d",&d);  
    Proc(GetDays(y,m,d));  
    return 0;  
}  
  
//最终输出函数  输入天数 输出是否结识帅哥或美女  
void Proc(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%3 == 0)&&(days%2 == 0))  
        printf("结识 美女+++帅哥\n");  
}  

  
  
//获取从2006年1月1日至当前日期的所有天数  
int GetDays(int year,int month,int day)  
{  
    int sum_daysofyear=0;  
    int sum_daysofmonth=0;  
    int allday=0;  
   for (int 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 sum_daysofmonth=0;  
   // 每月天数  
    int yearMonths[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 (int i = 1; i < month; i++)  
        {  
            sum_daysofmonth+= leapyearMonths[i-1];  
       }  
       return sum_daysofmonth;  
    }  
   else if(year %400 ==0)  
    {  
        for (int i = 1; i < month; i++)  
        {  
           sum_daysofmonth+= leapyearMonths[i-1];  
        }  
        return sum_daysofmonth;  
    }  
    //如果不是闰年 计算至当前月之前月的总天数  
    else{  
         
         
          for (int i = 1; i < month; i++)  
           {  
                sum_daysofmonth+= yearMonths[i-1];  
            }  
         
      }  
       return sum_daysofmonth;  
      
}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2