每日練習(4 5)

2021-09-16 21:30:51 字數 2662 閱讀 9925

一、給出年月日,計算該日是星期幾

在年份中,分為閏年和平年(閏年比一般年份多1天),到第x-1年共經過多少個閏年,[m]表示對m取整,如[2.85]=2;

到第x-1年如果不考慮百年份,那麼經過了[x-1/4]個閏年,

但是這個數值包含了既是整百年份又不能被400整除的年份,因此用[x-1/4]-[x-1/100],

但是這個值又少了被400整除的年份,我們加上是整百年份又能被的年份,[x-1/4]-[x-1/100]+[x-1/400],這個值就是到第x-1年年末共有多少個閏年。

有乙個閏年就比乙個一般年份多一天,有多少個閏年就比多少個一般年份多 多少天,有[x-1/4]-[x-1/100]+[x-1/400]個閏年,就比[x-1/4]-[x-1/100]+[x-1/400]個一般年份這麼多天。

那麼到第x年的第a天,一共經過了(x-1)*365+[x-1/4]-[x-1/100]+[x-1/400]天年

到第x年的第x月的第a天,一共經過了(x-1)*365+[x-1/4]-[x-1/100]+[x-1/400]+a天

因為(x-1)*365÷7與(x-1)÷7同餘,所以用x-1+[x-1/4]-[x-1/100]+[x-1/400]+a  除以7所得餘數即為星期幾

根據曆法原理,有下面公式,代入即可求得某年某月某日是星期幾

此處x是公元的年數,c是從這年的元旦算到這天為止(包括這一天在內)的日數,

//給定年月日,計算該日是星期幾

#includemain()

else

s=a-1+(a-1)/4-(a-1)/100+(a+1)/400+d;

z=s%7;//除7判斷是星期幾

if(z==0) printf(" 這一天為星期天。\n");

if(z==2) printf(" 這一天為星期二。\n");

if(z==3) printf(" 這一天為星期三。\n");

if(z==4) printf(" 這一天為星期四。\n");

if(z==5) printf(" 這一天為星期五。\n");

if(z==6) printf(" 這一天為星期六。\n");

}

二、編制萬年曆

#includelong int f(int year,int month)

long int g(int month)

long int n(int year,int month,int day)

int w(int year,int month,int day)

int date[12][6][7];

int day_tb1[12]=,

};void main()

printf("\n|*************************=== %d年日曆****************************************|\n|",year);

for(i=0;i<6;i++) }

/*char * month_name(int month)

}*/

char * month_name(int month)}

/*按格式列印某年某月名稱*/

void first_line_print(int month, int year)

/*按格式列印星期名稱*/

void week_print()

/*計算該年該月份與已知日子之間的距離天數*/

int date_distance_count(int month, int year)}}

else

if (year == known_year)

}distance = (year - known_year)*365 + leap_year_count + day_count(month);

return distance; }

/*確定該月份第一天是星期幾*/

int makesure_firstday_weekday(int month, int year)

/*依次列印出該月份的日子*/

void print_in_turn(int month, int firstday, int year)

switch(month)

}break;

}case 2:

}break;

}else /*平年*/

SICP練習 45 練習2 4

練習2.4 直接運用對比的技巧就可以猜測出相應的cdr表示如下 define cdr z z lambda p q q 但我們還是要按照題中要求用代換模型來檢驗。先來檢驗car的。car cons 0 1 car lambda m 0 1 lambda z z lambda p q p lambda...

SICP練習 45 練習2 4

練習2.4 直接運用對比的技巧就可以猜測出相應的cdr表示如下 define cdr z z lambda p q q 但我們還是要按照題中要求用代換模型來檢驗。先來檢驗car的。car cons 0 1 car lambda m 0 1 lambda z z lambda p q p lambda...

每日練習 5

c c 1 clone是fork的公升級版本,不僅可以建立程序或者執行緒,還可以指定建立新的命名空間 namespace 有選擇的繼承父程序的記憶體 甚至可以將建立出來的程序變成父程序的兄弟程序等等 2 引用和多型的關係 引用可以作為產生多型效果的手段 3 include void f char p...