C/C++掌握技能(三)

#include<cstdio>
int month[13][2]={  //平年和闰年的每个月的天数
    {0,0},{31,31},{28,29},{31,31},{30,30},{31,31},{30,30},
    {31,31},{31,31},{30,30},{31,31},{30,30},{31,31}
};
bool isLeap(int year){  //判断闰年
    return (year%4==0 && year %100!=0) || (year %400==0);
}

int main(){
    int time1,y1,m1,d1;
    int time2,y2,m2,d2;
    while(scanf("%d%d",&time1,&time2)!= EOF){
        if(time1>time2){    //让第一个日期早于第二个日期
        int tmp=time1;
        time1=time2;
        time2=tmp;
        }
        y1=time1/10000,m1=time1%10000/100,d1=time1%100;
        y2=time2/10000,m2=time2%10000/100,d2=time2%100;
        int ans=1;  //记录结果
        /*第一个日期没有达到第二个日期时进行循环
        即!((y1==y2) && (m1==m2) && (d1==d2))*/
        while(y1 < y2 || m1 < m2 || d1<d2)
        {
            d1++;   //天数加1
            if(d1 == month[m1][isLeap(y1)]+1)   //满当月天数
            {
                    m1++;       //日期变为下个月的1号
                    d1=1;
            }
            if(m1==13){     //月份满12个月
                y1++;   //日期变为下一年的1月
                m1=1;
            }
            ans++;  //累计
        }
        printf("%d
",ans);     //输出结果
    }
    return 0;
}


int
y=0, product =1; //product在循环中会不断乘p,得到1,P,P^2、P^3. while (x = 0) { y=y+ (x 8 10) * product; //x号10是为了每次获取x的个位数 x=x / 10; //去掉x的个位 product = product * P; }

 

int z[40],num=0;    数组z存放Q进制数y的每一位,num为位数
do{
    z[num+] = y%Q;  //除基取余
    y=y/Q;
    }while(y!=0);   //当商不为0时进行循环

原文地址:https://www.cnblogs.com/King-boy/p/10765366.html