LRJ 白書要點提示小結

2021-06-08 08:03:59 字數 1567 閱讀 2373

教主的經典書,做個簡單的小結

如果沒有足夠的時間用來實踐,那麼學得快,忘得也快。

提示1-1 整數用%d輸出,實數用%lf輸出

提示1-2 整數 / 整數 = 整數, 浮點數 / 浮點數 = 浮點數

提示1-3 scanf中的佔位符和變數的資料型別應該一一對應,每個變數前需要&符號

提示1-6 每行輸出均以回車符結束,包括最後一行,除非特別說明,每行的行首不應該有空格,

每兩個數和字串之間應該用單個空格隔開。

提示1-7 盡量用const關鍵字宣告常數

提示1-9 printf的格式字串可以包含其他可列印符號,列印時原樣輸出

提示1-16 c語言中的邏輯運算子都是短路運算子。一旦能夠確定整個表示式的值,就不再繼續計算

提示2-6 浮點運算可能存在誤差,在進行浮點數比較的時候,應考慮到浮點誤差

提示2-10 在觀察無法找到錯誤時,可以用「輸出中間結果」的方法查錯

提示2-16 變數在未賦值之前的值是不確定的,特別的,它不一定等於0

提示3-2 常常難以精確計算出需要的陣列大小,陣列一般會宣告的稍大一些,在空間夠用的情況下,浪費一些不要緊

提示3-3 比較大的陣列應盡量宣告在main函式之外

提示3-6 在很多情況下,最好是在做一件事之前檢查是不是可以做,而不要做完後悔,「悔棋」往往比較麻煩

提示3-7 c語言中的字元型關鍵字用char表示,它實際儲存的是字元的asc碼,字元常量可以用單引號表示,在

語法上可以把字元當int型使用

提示3-9 可以用sprintf把資訊輸出到字串,用法和printf,fprintf類似。但你應當保證字串足夠大

提示3-11 字元的本質是陣列,它也不是「一等公民」,只能用strcpy,strcmp,strcat等執行賦值,比較,連線

,而不能用=,==,<=,+等運算子,上述函式位於string.h

提示3-12 濫用++,--可能帶來隱蔽的錯誤,建議每條語句只用一次這種運算子

提示3-17 c語言不禁止程式讀寫「非法記憶體」。

提示3-18 c語言gets(s)存在緩衝區溢位漏洞,不推薦使用

提示3-19 當任務比較複雜時,可以用預處理的方式簡化輸入,並提供更多的資料供使用。複雜的

字串處理題目往往可以通過合理的預處理簡化任務,便於除錯。

提示3-21 在程式比較複雜的時候,除了設計階段可以用偽**理清思路外,編碼階段可以採用迭代

開發--每次只實現一點小功能,但要充分測試,確保它正常工作

順便說一句c++中還有一種「字串流」,可以實現類似sscanf,sprintf的功能 

如果按照自己的方式處理字串,千萬要保證它以'\0'結尾

提示4-7 即使最終答案在我們選擇的資料型別範圍以內,計算的中間結果仍然可能溢位

提示4-8 建議把謂詞命名為is_***的形式,int值,0表示假,非0表示真

提示4-10 程式設計時合理使用assert巨集,將給除錯帶來很大的方便

提示4-19 在執行時,程式會動態建立乙個堆疊段,裡面存放著呼叫棧,因此儲存著函式的呼叫關係和區域性變數

白書幾何模板

白書幾何模板 const double eps 1e 10 struct point typedef point vector 向量就是點的表示 vector operator vector a,vector b vector operator vector a,vector b vector op...

白書若干題

1.p32 排列 用1 2 3 9組成3個三位數abc,def和ghi,每個數字恰好使用一次,要求abc def ghi 1 2 3。輸出所有解。int i,j,k for i 123 i 987 3 i next permutation等全部重拍,然後判斷是否滿足比例關係。2.p50 乘積的末三位...

劃分數 白書

1 include 2 include 3 4using namespace std 5 有關計數問題的dp6 有n個無區別的物品,劃分成不超過m組,求方法數取模m的餘數78 const int max n 1000 2 9 const int max m 1000 2 10 const int m...