計算機表示小數的時候,包括float和double型,都有偏差。因此不能使用==來判斷他們是否相等。只能判斷他們是否在一個很小的偏差之中,例如偏差在正負0.00000001中就默認爲相等。數組
a>>1
表示將a的二進制數向右移動一位,現實意義爲除以2.並且位運算等運算速度遠比除運算要快的多。
eg:2>>1 = 1 ( 10右移一位爲 1)函數
在數組大小不肯定時,常用動態開闢方式。例如開闢一個int的動態數組。spa
int *p = new int[n];
同時注意的點是,動態開闢後須要delete數組。code
delete[] p;
而在問題中,有不少時候須要開闢一個二維數組。而二維數組則不能直接寫成下面這樣:blog
int size=50,Column=50; int (*p)[Column]=new int [size][Column]
這種寫法是錯誤的。編譯器不會經過,能夠看出這種動態開闢本質上只有對一維數組是真正動態開闢的。
動態開闢二維數組以下:資源
//動態開闢空間 int **p = new int*[m]; //開闢行 for(int i = 0; i < m; i++) p[i] = new int[n]; //開闢列 //釋放開闢的資源 for(i = 0; i < m; i++) delete[] p[i]; delete[] p;
魯棒性即爲健壯性,指程序可以判斷輸入是否合乎規範要求,並對不合理輸入給予合理的處理。
注視代碼的魯棒的性,須要在代碼函數的入口處添加驗證傳入參數的合理性。編譯器