<1>: for語句[for(初始化;條件;調整) ]執行時先完成賦值操作,判斷滿足條件後執行迴圈體,之後的每次執行都是先完成調整操作,判斷滿足條件後繼續執行迴圈體,不滿足條件就退出迴圈。
1 #include 3 #include 4using
namespace
std;56
intmain()712
//程式無輸出內容
<2>: 判斷乙個數是否為完全平方數
利用恒等式1+3+5+7+···+2*n-1=n*n;
1 #include 2 #include 3using
namespace
std;
4bool issqrt(int
n);5
6int
main()
714 printf("
isn't sqrt\n");
15}16return0;
17}18bool issqrt(int
n)
<3>: floor函式:其功能是「向下取整」,或者說「向下捨入」,即取不大於x的最大整數(與「四捨五入」不同,下取整是直接取按照數軸上最接近要求值的左邊值,即不大於要求值的最大的那個值。
1 #include 2 #include 3 #include 4using
namespace
std;56
intmain()
7//程式輸出為3.0
//double floor(double n);
//floor()函式標頭檔案為#include
<4>: 浮點數運算可能存在誤差,浮點數比較時要考慮到浮點誤差。
1 #include 2 #include 3 #include 4using
namespace
std;
5bool issqrt(int
n);6
7int
main()
815 printf("
isn't sqrt\n");
16}17return0;
18}19bool issqrt(int
n)
<5>: while語句和do-while語句用法相同,唯一的區別是while先判斷條件是否成立,成立即開始迴圈,do-while則是先做一次再判斷是否成立,隨後便和while一樣運作。
可以利用do-while的這一特性解決一些特殊的問題(迴圈終止判斷在計算之後的情況很適用於do-while語句)。
例如求integer的位數:
1 #include 2 #include 3using
namespace
std;45
intmain()
6while(n);//do-while語句
避免了需要考慮n==0的情況
14 printf("
%d\n
",cnt);15}
16return0;
17 }
<6>: int_32, int_64, uint_32,uint_64(c語言資料型別)
c99規定int至少是16位,卻沒有具體的值,所以c99規定了以上資料型別,演算法競賽平台一般相對穩點,int為32位數。
1 #include 2 #include 3using
namespace
std;45
intmain()
6
<7>: c語言中long long int 在linux下輸入格式為%lld,在windows下輸入為%i64d。
<8>: 函式clock()返回程式目前為止的執行時間,這個時間除以常數clocks_per_sec之後得到的值以秒為單位。
1 #include 2 #include 3 #include 4using
namespace
std;56
intmain()
7
<10>: scanf函式在遇到空格,回車換行時會自動結束。
<11>: c語言檔案讀寫。
函式名:freopen
宣告:file *freopen( const char *path, const char *mode, file *stream );所在檔案: #include引數說明:
path: 檔名,用於儲存輸入輸出的自定義檔名。
mode: 檔案開啟的模式。和fopen中的模式(如r-唯讀, w-寫)相同。
stream: 乙個檔案,通常使用標準流檔案。
返回值:成功則返回乙個path所指定檔案的指標;失敗返回null。(一般可以不使用它的返回值)
功能:實現重定向,把預定義的標準流檔案定向到由path指定的檔案中。標準流檔案具體是指stdin、stdout和stderr。其中stdin是標準輸入流,預設為鍵盤;stdout是標準輸出流,預設為螢幕;
stderr是標準錯誤流,一般把螢幕設為預設。
1 #include 2 #include 3using
namespace
std;45
intmain()
6
//重定向使用完畢後記得要取消重定向
習題2-5 分數化小數
思路:分步輸出
1 #include 2 #include 3using
namespace
std;45
intmain()
615 a*=10
;16 printf("
%d\n
",a/b>5?(a/b+1):(a/b));17}
18return0;
19 }
習題2-6 排列
簡單將每一位初始化為1,最後將各位相加結果為9即輸出。
1 #include 2 #include 3 #include 4using
namespace
std;56
intmain()728
return0;
29 }
第二章 迴圈結構程式設計(二)
關於取末或前幾位數 取末6位 6個0,取最末 1個0.例如 121 1212 1000,23 123 100,3 23 10。的想法 你取幾位數,它從後到前數幾個數。模擬可得 的用法。三角 要計算只包含加法,減法和乘法的整數表示式除以正整數n的餘數,可以在每步計算之後對n取餘,結果不變。includ...
第二章 迴圈結構程式設計(二)
浮點數的陷阱 陷阱1 cpp view plain copy double i for i 0 i 10 i 0.1 printf 1lf n i 程式會列印至10.0時結束迴圈嗎?不會。因為i永遠也不可能等於10,這是個無限迴圈 陷阱2 cpp view plain copy if 0.1 0.1...
《程式設計珠璣》第二章 迴圈移位
問題 將乙個n維向量向左迴圈移位m位。如向量0,1,2,3,4,5,6,7,8,9向左迴圈移位3位,結果是3,4,5,6,7,8,9,0,1,2。方法1 每次迴圈移位1位,執行m次。輔助空間1,時間複雜度o n m 方法2 用m維的輔助空間暫存前m個元素,對剩下的n m個元素進行移位,最後將m個元素...