2018-06-10 機(jī)試準(zhǔn)備02

日期類:


一址遇、例2.3 求兩個(gè)日期間的天數(shù)差哗咆;區(qū)間問題:統(tǒng)一區(qū)間

自己的寫法 思路/錯(cuò)誤:

1)統(tǒng)一到0000年01月01日咽扇,分別計(jì)算相差天數(shù)屋灌,再相減+1洁段;在讀取輸入的字符串時(shí)用的gets() 但無法使用string類的substr方法提取部分字符串,進(jìn)而無法用atof轉(zhuǎn)換為數(shù)值型

2)參考書上給的示例声滥,發(fā)現(xiàn)讀取時(shí)可以直接用%4d%2d%2d來讀取特定位數(shù)的數(shù)字眉撵;1)中計(jì)算year1和year2之前的年份天數(shù)時(shí)有誤,只判斷year1或year2是不是閏年落塑,未計(jì)算之前的年份纽疟;2)中沒有考慮相差天數(shù)的正負(fù)問題,應(yīng)在計(jì)算中加ABS絕對值憾赁;3)表示平常年份和閏年的兩組天數(shù)應(yīng)為days[13][2], 其中0月有0天{0污朽,0}

3)重新統(tǒng)一區(qū)間,統(tǒng)一到更小年份如year1的year10101龙考,計(jì)算更簡便蟆肆;增加islonger()函數(shù)和ABS()函數(shù);判斷閏年出錯(cuò)(x%100!=0&&x&4==0||x%400=0?1:0)

參考示例 精妙之處:

1)定義一個(gè)宏來判斷是否是閏年 #define ISYEAP(x) x%100!=0&&x%4==0||x$400==0?1:0

2)根據(jù)普通年和閏年2月天數(shù)區(qū)分 定義一個(gè)二維數(shù)組 存儲(chǔ)每月天數(shù)的數(shù)組 dayOfMonth[13][2]

3) 使用三維數(shù)組晦款,用年炎功、月、日分別表示數(shù)組下標(biāo),buf[5001][13][32], 定義為全局變量缓溅,以免內(nèi)存不足

4)輸入格式巧妙%4d%2d%2d

5) 以00000101為原點(diǎn)時(shí)間蛇损,預(yù)處理所有日期(0000-5000)與原點(diǎn)日期之間的天數(shù)差并保存,當(dāng)控制臺(tái)真正輸入數(shù)據(jù)時(shí)坛怪,只需要O(1)的時(shí)間復(fù)雜度將保存的數(shù)據(jù)做差值處理即可淤齐,空間換時(shí)間。

6)直接用dayOfMonth[Month][ISYEAR(Year)]來調(diào)用每月天數(shù)袜匿,注意ISYEAR()的bool值正好與0/1對應(yīng)

7)定義一個(gè)Date結(jié)構(gòu) 和 結(jié)構(gòu)內(nèi)的nextDay()方法 循環(huán)計(jì)算天數(shù)更啄!


二、例2.4? 輸入日期居灯,輸出該日期為星期幾

自己的寫法 思路/錯(cuò)誤:

1)寫兩個(gè)struct結(jié)構(gòu)數(shù)組祭务,將month.name和month.num;week.name和week.num對應(yīng)起來怪嫌;復(fù)習(xí)了結(jié)構(gòu)數(shù)組的初始化 (其實(shí)和普通數(shù)組一樣 {{},{},...{}}; 不懂為什么書上可以直接換行表示不用{} 是版本問題嗎?

2)以今天日期的星期數(shù)為參照(2018.6.10 星期天)計(jì)算任一天與今天的相差天數(shù) 再%7待牵;若為正數(shù) 則直接可對應(yīng);若為負(fù)數(shù)喇勋,則需+7再對應(yīng)缨该;其中Sunday在正數(shù)時(shí)為0 在負(fù)數(shù)時(shí)為7 故week結(jié)構(gòu)中賦值有兩個(gè)Sunday

3)給字符串變量賦值用到了strcpy(str1,str2) 將str2賦值給str1 不能直接用=

4)主要的錯(cuò)誤集中在:stack overflow 在buf的定義中以為只要1000-3000的year就可以定義為2001了 然而實(shí)際上最大的還是buf[3000] 所以如果要減小空間 需要buf[i-1000] 但是為了可讀性和簡便 就沒有那么做了; 此外 注意strcmp函數(shù)=0時(shí)是相等 不要弄反了

5)關(guān)于string和string.h:string.h是C的頭文件川背,包括strcpy/strcat等字符串處理函數(shù)贰拿;string是C++的標(biāo)準(zhǔn)頭文件蛤袒,包括string類和C中的string.h

參考示例 學(xué)習(xí)之處:

1)對于month.name和month.num以及week.name和week.num的處理沒有用到struct結(jié)構(gòu)數(shù)組,而只用普通數(shù)組膨更,月名可以與下標(biāo)對應(yīng)妙真,更簡單!即monthname[num]=name

2) 在比較輸入的字符串和初始化的月名的循環(huán)中荚守,用到了break珍德,可以減少循環(huán)次數(shù)

3)對于間隔天數(shù)正負(fù)的處理:沒有像我一樣分開處理,而是統(tǒng)一用(interval%7+7)%7 也可以達(dá)到效果矗漾,更簡便

4)輸出字符串用到了puts锈候,比較一下puts和printf的區(qū)別:puts相當(dāng)于printf("%s\n",s)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市敞贡,隨后出現(xiàn)的幾起案子泵琳,更是在濱河造成了極大的恐慌,老刑警劉巖誊役,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件获列,死亡現(xiàn)場離奇詭異,居然都是意外死亡蛔垢,警方通過查閱死者的電腦和手機(jī)击孩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鹏漆,“玉大人溯壶,你說我怎么就攤上這事「δ校” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵验烧,是天一觀的道長板驳。 經(jīng)常有香客問我,道長碍拆,這世上最難降的妖魔是什么若治? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮感混,結(jié)果婚禮上端幼,老公的妹妹穿的比我還像新娘。我一直安慰自己弧满,他們只是感情好婆跑,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著庭呜,像睡著了一般滑进。 火紅的嫁衣襯著肌膚如雪犀忱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天扶关,我揣著相機(jī)與錄音阴汇,去河邊找鬼。 笑死节槐,一個(gè)胖子當(dāng)著我的面吹牛搀庶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播铜异,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼哥倔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了熙掺?” 一聲冷哼從身側(cè)響起未斑,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎币绩,沒想到半個(gè)月后蜡秽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缆镣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年芽突,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片董瞻。...
    茶點(diǎn)故事閱讀 40,615評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡寞蚌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出钠糊,到底是詐尸還是另有隱情挟秤,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布抄伍,位于F島的核電站艘刚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏截珍。R本人自食惡果不足惜攀甚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望岗喉。 院中可真熱鬧秋度,春花似錦、人聲如沸钱床。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鲸拥,卻和暖如春拐格,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背刑赶。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工捏浊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人撞叨。 一個(gè)月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓金踪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親牵敷。 傳聞我的和親對象是個(gè)殘疾皇子胡岔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法枷餐,內(nèi)部類的語法靶瘸,繼承相關(guān)的語法,異常的語法毛肋,線程的語...
    子非魚_t_閱讀 31,664評論 18 399
  • 一怨咪、Java 簡介 Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計(jì)...
    子非魚_t_閱讀 4,206評論 1 44
  • RecyclerView是Android 5.X中新增在support-v7架包中的新組件,同時(shí)也是作為ListV...
    弘靜閱讀 345評論 0 0
  • 橙子興趣島開放,我最后選擇了閱讀與碼字孕讳。 我希望自己是一個(gè)能夠靜下心來閱讀的人匠楚,但是事實(shí)上我經(jīng)常看不下去厂财,看完就忘...
    雪23閱讀 192評論 0 0
  • 藏著的風(fēng)流著的悲傷 要是悲傷之后仍是悲傷 要是雨過天晴只是想象 要是閃電不會(huì)轉(zhuǎn)瞬即逝 要是雷聲也掩蓋不了你心臟的跳...
    暮元閱讀 169評論 0 0