Skip to content

Spec of coding style

Yuxin Zhou edited this page Jul 18, 2016 · 1 revision

競賽程式碼撰寫規範

以下部分參考至:JavaScript 設計規範、Clean Code 無瑕的程式碼。

基本規範

行首縮排

使用 4 個半形空白或 1 個 Tab。

空白

  • 於標點符號之後(逗號),如 char a[] = {1, 3, 5}; 其中的 1, 3, 5。
  • 運算符號的前後,如 c = a + b;
  • 函式參數的逗號之後:void solve(int x, int y, int z) ...
  • if, for, while 等流程控制的後方:for (int i = 0, j = 0; i < n ; i++)

函式命名

使用駝峰式命名法,若一個函式由兩個以上單字組成,首字字首不大寫,其餘需大寫:void addPersonDetail();

常數

使用 const 來標明不變的數,如數據範圍 const int MAX_N = 100000;, MAX_M、取模 const int MOD = 1e9+7const int PI = 3.14。常數需全大寫。

結構命名

首字大寫,如:

struct Edge {
    // write something here
};

大括號

盡量在每一個 for, while, if-else 都加上大括號,大括號的位置在行末。如果不設大括號要用縮排以免混淆。如:

if ( solve() ) {
    puts("AC");
}

細節

main 函式

盡量只處理主要流程動作部分與輸入輸出,其餘的運算交付給函式做處理。

int main() {
    int T;
    cin >> T;
    while ( T-- ) {
      // input
      // output
    }
    return 0;
}

使用 return 0; 做為 main 區塊的結束。

處理主函式