用c語言解決日期問題

2021-10-13 15:19:03 字數 2028 閱讀 7062

用c語言計算日期。

方法一:先算出到已知日期前的所有天數然後對7求餘數。

計算所有天數的函式如下:

int

year_sum

(int a ,

int b ,

int c)

//計算到輸入日期前的總共天數

;//平年每個月的天數

int e=

;//閏年每個月的天數

while

(a >1)

else

} sum =

365* j +

366* i;

if(a %4==

0&& a %

100!=

0&& a %

400==0)

}else

} sum = sum + c;

return sum;

}

主函式如下

int

main()

;scanf

("%d %d %d"

,&year ,

&month ,

&day)

; s =

year_sum

(year , month , day)

; i = s %7;

printf

("今天是星期%c"

, a[i]);

return0;

}

總函式如下:

#include

intyear_sum

(int a ,

int b ,

int c)

//計算到輸入日期前的總共天數

;//平年每個月的天數

int e=

;//閏年每個月的天數

while

(a >1)

else

} sum =

365* j +

366* i;

if(a %4==

0&& a %

100!=

0&& a %

400==0)

}else

} sum = sum + c;

return sum;

}int

main()

;scanf

("%d %d %d"

,&year ,

&month ,

&day)

; s =

year_sum

(year , month , day)

; i = s %7;

printf

("今天是星期%c"

, a[i]);

return0;

}

方法二:

#include

intmain()

;int b=

;int c=

;scanf

("%d %d %d"

,&year ,

&month ,

&day);if

(year %4==

0&& year %

100!=

0|| year %

400==0)

else

i =(year +

(year/4)

+(year/

400)

-(year/

100)+(

(t + day)-1

))%7

;printf

("今天是星期%d"

, c[i]);

return0;

}

所用到的方法是:(年 + (年 / 4 )+ (年 / 400) - (年/100)+((月日天數 + 目前天數) - 1)) % 7

求出來的餘數就是星期數。

其中月日天數就是a【】和 b【】兩個陣列中的數字。

a【】是平年的月日天數。

b【】是閏年的月日天數。

開燈問題用C語言怎麼解決 ?

問題 走廊裡依次排列著100盞燈,依次從1號編100號,都關著。有100個學生從1號編到100號,依次走來,1號學生從第一只開關按起,凡是1的倍數都按一下,2號學生從第二隻開關按起,凡是2的倍數都按一下,3號學生從第三隻開關按起,凡是3的倍數都按一下,依次類推,直到第100號學生按完為止。最後有多少...

C語言用堆思想解決TopK問題

之前介紹了堆的一些操作,對堆排序的操作是在提前建立了堆的資料結構的基礎上直接呼叫以前的資料結構,但是今天我們要做的是,假如現在你去面試或者遇到問題的時候沒有堆這個資料結構可以直接呼叫的時候怎麼辦呢?難道要現場建立乙個嗎?也不是說不可以,但是畢竟你的時間是有限的,而且其實可以通過直接對陣列的操作來進行...

C 用基礎類解決問題。

02.煙台大學計算機學院學生 03.all right reserved.04.檔名稱 煙台大學計算機學院學生 05.all right reserved.06.檔名稱 抽象基類 08.完成日期 2014年9月18日 09.版本號 v1.0 10.對任務及求解方法的描述部分 用基礎類解決問題。11....