第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

計算日期時結(jié)果總是不準(zhǔn)確。這是什么原因?

計算日期時結(jié)果總是不準(zhǔn)確。這是什么原因?

C++
玄天 2016-09-07 20:48:27
include?"iostream" using?namespace?std; int?main() { ????int?year,?month,?day; ????int?days; ????int?sum; ????cout?<<?"請輸入年:"; ????cin?>>?year; ????cout?<<?"請輸入月:"; ????cin?>>?month; ????cout?<<?"請輸入日:"; ????cin?>>?day; ????cout?<<?"請輸入日期"; ????cin?>>?days; ????switch(month) ????{? ????????case?1: ????????sum?=?0; ????????break; ????????case?2: ????????sum?=?31; ????????break; ????????case?3: ????????sum?=?59; ????????break; ????????case?4: ????????sum?=?90; ????????break; ????????case?5: ????????sum?=?120; ????????break; ????????case?6: ????????sum?=?151; ????????break; ????????case?7: ????????sum?=?181; ????????break; ????????case?8: ????????sum?=?212; ????????break; ????????case?9: ????????sum?=?243; ????????break; ????????case?10: ????????sum?=?273; ????????break; ????????case?11: ????????sum?=?304; ????????break; ????????case?12: ????????sum?=?334; ????????break; ????????default: ????????cout?<<?"你輸入的月份有誤。"; ????????break; ????} ????sum?+=?day?-?1; ????//減1的目的是為了保證當(dāng)sum值為0時,year仍為當(dāng)年 ????if?(year?%?400?==?0?||?(year?%?100?!=?0?&&?year?%?4?==?0)) ????????{ ????????????if?(month?>?2) ????????????sum++; ????????????//如果該年為閏年,且月份大于2月,那么sum值加1 ????????} ????days?-=?sum; ????//將天數(shù)減去sum的值 ????while?(days?>?365) ????//如果天數(shù)大于365 ????{ ????????if?((year?-?1)?%?400?==?0?||?(year?-?1)?%?100?!=?0?&&?(yea?r-?1)?%?4?==?0) ????????//如果該年減1后的年為閏年 ????????{ ????????????days?-=?366; ????????????//天數(shù)減366 ????????} ????????else ????????{ ????????????days?-=?365; ????????????//否則天數(shù)減365 ????????} ????????year?-=?1; ????????//年份隨之減1 ????} ????while?(365?>=?days?>?0) ????//當(dāng)天數(shù)不大于365且大于0時 ????{ ????????days?-=?1; ????????day?-=?1; ????????//天數(shù)減1,日隨之減1 ????????if?(day?==?0) ????????//如果日為0 ????????{ ????????????if?(month?==?1) ????????????//如果月為1 ????????????{ ????????????????month?=?12; ????????????????day?=?31; ????????????????year?-=?1; ????????????????//月份更改為12,日更改為31,年減1 ????????????} ????????????else?if?(month?==?5?||?month?==?7?||?month?==?10?||?month?==?12) ????????????//如果月為5,7,10,12 ????????????{ ????????????????day?=?30; ????????????????month?-=?1; ????????????????//天數(shù)更改為30,月減1 ????????????} ????????????else?if?(?month?==?2?||?month?==?4?||?month?==?6?||?month?==?8?||?month?==?9?||?month?==?11) ????????????//如果月為2,4,6,8,9,11 ????????????{ ????????????????day?=?31; ????????????????month?-=?1; ????????????????//天數(shù)更改為31,月減1 ????????????} ????????????else?if?(month?==?3) ????????????//如果月為3 ????????????{ ????????????????if?(year?%?400?==?0?||?year?%?100?!=?0?&&?year?%?4?==?0) ????????????????//如果當(dāng)年為閏年 ????????????????{ ????????????????????day?=?29; ????????????????????month?-=?1; ????????????????????//天數(shù)更改為29,月減1 ????????????????} ????????????????else ????????????????{ ????????????????????day?=?28; ????????????????????month?-=?1; ????????????????????//否則天數(shù)更改為28,月減1 ????????????????} ????????????} ????????????else ????????????//如果月不是以上的值 ????????????????cout?<<?"此月份不存在。"; ????????} ????} ????cout?<<?"計算得到的日期是"?<<?year?<<?"年"?<<?month?<<?"月"?<<?day?<<?"日"; ????return?0; }這段代碼的目的大致如下:輸入年、月、日后,輸入一個天數(shù)(大于0),計算該日期指定天數(shù)之前的日期。例如:依次輸入2032、9、25、1836,計算2032年9月25日的1836天之前的日期。具體過程,請參考注釋。但是在測試過程中,總是出現(xiàn)年為負(fù)數(shù),月和日也不正確的結(jié)果。這是什么原因?
查看完整描述

2 回答

已采納
?
JustWannaHugU

TA貢獻(xiàn)452條經(jīng)驗 獲得超796個贊

設(shè)置斷點調(diào)試一下吧,更清晰一點?,F(xiàn)在我手里沒電腦

查看完整回答
反對 回復(fù) 2016-09-07
?
慕名不來

TA貢獻(xiàn)10條經(jīng)驗 獲得超7個贊

第85行: while?(365?>=?days?>?0) 這個條件表達(dá)式寫錯了,沒仔細(xì)看邏輯,你自己再檢查下吧。建議可以寫個借口函數(shù),由天數(shù)推日期,由日期推天數(shù)。你這樣反著來好繞啊

查看完整回答
反對 回復(fù) 2016-09-08
  • 玄天
    玄天
    問題沒有想象中的那么復(fù)雜,我已經(jīng)通過刪除冗余代碼解決了。謝謝你的回復(fù)!
  • 2 回答
  • 0 關(guān)注
  • 1324 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號