C語言 NextDay問題

2021-09-27 01:31:02 字數 1331 閱讀 1999

輸入乙個時間,某年某月某日,輸出下一天

主要就是邊界控制,不使用愚蠢寫法,無技術含量,僅僅邏輯性考驗

注釋完善,自行理解

執行環境:ubuntu18.04 clion/gcc

windows環境也無需修改

/*  next day

* 注意:緊扣題意,輸入格式為:xx年xx月xx日,正好利用這鍛鍊格式化字串sscanf()函式

* 至於例如2019 02 25這種格式,如此一來,寫的更沒意思了

* 包括多此一舉在堆區開闢空間,同時也避免了使用者故意無限輸入導致棧區溢位問題

* 學習軟體測試,就要考慮到萬無一失

* 考研的同學可以多了解這些函式

* * */

#include

#include

intmain

(void);

printf

("輸入年月日[format:xx年xx月xx日]:\n");

//堆區開闢空間,棧區空間windows預設只有1m,linux一般預設8m,可以擴大,在此不做贅述

char

*time =

malloc(64

);scanf

("%s"

, time)

;int year, mon, day;

//格式化字串置於對應變數中

sscanf

(time,

"%d年%d月%d日"

,&year,

&mon,

&day)

;//判斷閏年後2月份陣列天數加一if(

(year %4==

0&& year %

100!=0)

||(year %

400==0)

) monarray[2]

++;//月,日未超範圍if(

(mon <=

12&& mon >=1)

&&(day <= monarray[mon]))

//只達到月尾

else

}//月日均為超範圍

else

}//月日超範圍,直接return

else

//計算成功

printf

("next day is:%d年%d月%d日\n"

python解決NEXT DAY問題

print 請輸入日期 n year int input month int input day int input if year 2100 and year 1900 and month 1 and month 12 and day 1 and day 31 if month 1 or mont...

C語言 投票問題

問題描述 有n個選民參與投票,候選人分別為a,b,c,d,現在選民分別投a,b,c,d代表4個候選人 資料由電腦隨機產生 無效資料自動排出 最後由高到低排列候選人和其票數 要點解決 1.產生隨機數要用到隨機種子,以當前時間為起始點進行隨機,生成隨機數較大 對其取餘,加上 a 即可生成對應的abcde...

C語言小問題

define max a,b 於是我開始修改 檢視各種 反饋的結果。int a 10,b 100 int x 好吧,我把圓括號給刪除了,於是編譯器給我報錯了。error expected expression before int int a,b 好吧,不能沒有圓括號,雖然現在還不知道是為啥。然後我...