算法競賽入門經典--第二章筆記

第二章 循環結構程序設計

1 . for循環的執行

在第二次執行循環體先執行調整語句(即i++之流),而後再判斷條件。

2 . 常用數學函數

x=3.14floor(x)=3    //向下取整函數
floor(x+0.5)  // 即四捨五入,聯繫數軸的位置
fabs(double s), labs(long s), abs(int s)  // 各數據類型的取整函數

3 . 科學計數法表示

  1.23456e+002   //即表示1.23456乘上10的2次方

4 . 時間函數的使用

#include<time.h>
(double)clock() / CLOCKS_PER_SEC //獲取當前運行時間(秒),可在程序前後加入計算時間複雜度

5 . 小技巧

利用統計的方法尋找大整數結果的規律,從而避免大數加乘運算而導致的溢出
6 . scanf函數用法
enter鍵不代表輸入結束,scanf函數返回成功輸入的變量個數。在Windows下,輸入完畢後先按Enter鍵,再按Ctrl+Z鍵,最後再按Enter
鍵,即可結束輸入。在Linux下,輸入完畢後按Ctrl+D鍵即可結束輸入。
7. 文件輸入輸出

#ifdef LOCAL
freopen("data.in", "r", stdin);
freopen("data.out", "w", stdout);
#endif
//這兩函數幫助你快速輸入輸出(允許你使用重定向時)

FILE *fin, *fout;
fin = fopen("data.in", "rb");
fout = fopen("data.out", "wb");
fscanf(fin, "%d", &x) == 1
fprintf(fout, "%d %d %.3f\n", min, max, (double)s/n);
fclose(fin);
fclose(fout);     
//當不允許使用重定向時
// 簡單文本內容寫入讀取
#include<stdio.h>
int main()
{
    FILE *fout;
    fout=fopen("data.out","w");
    char buf[255];
    while(!feof(fout))
    {
        fgets(buf,255,fout);
        printf("%s",buf);
    }
    fclose(fout);
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章