/* 寫一個程式計算給定日期為星期幾。輸入會先告訴程式某年的 1 月 1 號為星期幾,例如範例中 2012 年的 1 月 1 號為星期日。接著程式會收到一些日期,並要計算出給定日期為星期幾,例如範例中程式將會收到 11 月 13 號,並計算出該日期為星期二。
(閏年計算請參考wiki)
輸入格式
第一行包含一個西元年以及該年的一月一日為星期幾,如範例中 2012 0。注意,0 代表星期日,1 代表星期一,以此類推。第二行會告訴程式接下來將有 n 組日期需要計算。n 的範圍為 1 至 10。接下來的 n 行,每一行將會有一組需要計算的日期(月、日),如範例中的 11 月 13 號。若輸入的「月」有誤請輸出 -1;若輸入的「日」有誤請輸出 -2。
輸出格式
共會輸出 n 個數字。我們用 0 代表星期日,1 代表星期一,以此類推。若輸入的「月」有誤請輸出 -1;若輸入的 「月」無誤但「日」有誤請輸出 -2。(數字間留一個空白)
*/
#include <stdio.h>
int main(void) {
int years, weekday;
int mon[10], day[10];
int i,j ; /*counter*/
int ww ; /*which weekdays is*/
int yd = 0 ; /*total accumlator*/
int n = 0;
int b = 0;
int a[12] = {31,28,31,30,31,30,31,31,30,31,30,31} ;
for (i=0 ; i<n ; i++ )
{
}
//判斷閏年 更改陣列值
if (years % 400 == 0)
a[1]= 29 ;
else if ( (years%4 == 0) && (years%100 != 0) )
a[1]= 29 ;
else
a[1]= 28 ;
for (i=0 ; i<n ; i++) {
if (mon[i]>12 ||mon[i] < 1)
ww= -1;
else
{
for (j=0 ; j<(mon[i]-1) ; j++)
yd = yd + a[j];
ww = ( ((yd + day[i])-1)%7 + weekday) % 7;
yd = 0;
//prevent day wrong
b = mon[i] - 1 ;
if (day[i] > a[b] || day[i] < 1)
ww = -2;
}
}
return 0;
}
Lyog5a+r5LiA5YCL56iL5byP6KiI566X57Wm5a6a5pel5pyf54K65pif5pyf5bm+44CC6Ly45YWl5pyD5YWI5ZGK6Ki056iL5byP5p+Q5bm055qEIDEg5pyIIDEg6Jmf54K65pif5pyf5bm+77yM5L6L5aaC56+E5L6L5LitIDIwMTIg5bm055qEIDEg5pyIIDEg6Jmf54K65pif5pyf5pel44CC5o6l6JGX56iL5byP5pyD5pS25Yiw5LiA5Lqb5pel5pyf77yM5Lim6KaB6KiI566X5Ye657Wm5a6a5pel5pyf54K65pif5pyf5bm+77yM5L6L5aaC56+E5L6L5Lit56iL5byP5bCH5pyD5pS25YiwIDExIOaciCAxMyDomZ/vvIzkuKboqIjnrpflh7roqbLml6XmnJ/ngrrmmJ/mnJ/kuozjgIIKCijplo/lubToqIjnrpfoq4vlj4PogIN3aWtpKQoK6Ly45YWl5qC85byPCuesrOS4gOihjOWMheWQq+S4gOWAi+ilv+WFg+W5tOS7peWPiuipsuW5tOeahOS4gOaciOS4gOaXpeeCuuaYn+acn+W5vu+8jOWmguevhOS+i+S4rSAyMDEyIDDjgILms6jmhI/vvIwwIOS7o+ihqOaYn+acn+aXpe+8jDEg5Luj6KGo5pif5pyf5LiA77yM5Lul5q2k6aGe5o6o44CC56ys5LqM6KGM5pyD5ZGK6Ki056iL5byP5o6l5LiL5L6G5bCH5pyJIG4g57WE5pel5pyf6ZyA6KaB6KiI566X44CCbiDnmoTnr4TlnI3ngrogMSDoh7MgMTDjgILmjqXkuIvkvobnmoQgbiDooYzvvIzmr4/kuIDooYzlsIfmnIPmnInkuIDntYTpnIDopoHoqIjnrpfnmoTml6XmnJ8o5pyI44CB5pelKe+8jOWmguevhOS+i+S4reeahCAxMSDmnIggMTMg6Jmf44CC6Iul6Ly45YWl55qE44CM5pyI44CN5pyJ6Kqk6KuL6Ly45Ye6IC0x77yb6Iul6Ly45YWl55qE44CM5pel44CN5pyJ6Kqk6KuL6Ly45Ye6IC0y44CCCgrovLjlh7rmoLzlvI8K5YWx5pyD6Ly45Ye6IG4g5YCL5pW45a2X44CC5oiR5YCR55SoIDAg5Luj6KGo5pif5pyf5pel77yMMSDku6PooajmmJ/mnJ/kuIDvvIzku6XmraTpoZ7mjqjjgILoi6XovLjlhaXnmoTjgIzmnIjjgI3mnInoqqToq4vovLjlh7ogLTHvvJvoi6XovLjlhaXnmoQg44CM5pyI44CN54Sh6Kqk5L2G44CM5pel44CN5pyJ6Kqk6KuL6Ly45Ye6IC0y44CCKOaVuOWtl+mWk+eVmeS4gOWAi+epuueZvSkKKi8KCiNpbmNsdWRlIDxzdGRpby5oPgoKaW50IG1haW4odm9pZCkgewoJaW50IHllYXJzLCB3ZWVrZGF5OwoJaW50IG1vblsxMF0sIGRheVsxMF07CglpbnQgaSxqIDsgLypjb3VudGVyKi8KCWludCB3dyA7IC8qd2hpY2ggd2Vla2RheXMgaXMqLwoJaW50IHlkID0gMCA7IC8qdG90YWwgYWNjdW1sYXRvciovCglpbnQgbiA9IDA7CglpbnQgYiA9IDA7CglpbnQgYVsxMl0gPSB7MzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzF9IDsKCXNjYW5mKCIlZCIsICZ5ZWFycyk7CglzY2FuZigiJWQiLCAmd2Vla2RheSk7CglzY2FuZigiJWQiLCAmbik7CgkKCWZvciAoaT0wIDsgaTxuIDsgaSsrICkKCXsKCXNjYW5mKCIlZCIsICZtb25baV0pOwoJc2NhbmYoIiVkIiwgJmRheVtpXSk7Cgl9CgkvL+WIpOaWt+mWj+W5tCDmm7TmlLnpmaPliJflgLwKICAgICAgICAgICAgaWYgICh5ZWFycyAlIDQwMCA9PSAwKQogICAgICAgICAgICAgYVsxXT0gMjkgOwogICAgICAgICAgICBlbHNlIGlmICggKHllYXJzJTQgPT0gMCkgJiYgKHllYXJzJTEwMCAhPSAwKSApCiAgICAgICAgICAgICBhWzFdPSAyOSA7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGFbMV09IDI4IDsKCQoJCglmb3IgKGk9MCA7IGk8biA7IGkrKykgewoJCglpZiAobW9uW2ldPjEyIHx8bW9uW2ldIDwgMSkKCSAgd3c9IC0xOwoJZWxzZSAKCXsKICAgICAgICAgICAgICBmb3IgKGo9MCA7IGo8KG1vbltpXS0xKSA7IGorKykgICAKICAgICAgICAgICAgICAgIHlkID0geWQgKyBhW2pdOwogICAgICAgICAgICAgIHd3ID0gKCAgICgoeWQgKyBkYXlbaV0pLTEpJTcgICArIHdlZWtkYXkpICUgNzsKICAgICAgICAgICAgICB5ZCA9IDA7CgkvL3ByZXZlbnQgZGF5IHdyb25nCgliID0gbW9uW2ldIC0gMSA7CiAgICAgICAgICAgIGlmIChkYXlbaV0gPiBhW2JdIHx8IGRheVtpXSA8IDEpCgkgICB3dyA9IC0yOwoJfQoJcHJpbnRmKCIlZCAiLCB3dyk7IAoJCgl9CglyZXR1cm4gMDsKfQo=