信奧程式設計風格建議
先看下面兩段程式碼。
第一段:
#include <iostream> using namespace std;int main(){cout<<"Hello World!"<<endl;return 0;}
第二段:
#include <iostream> using namespace std; int main() { cout<<"Hello World!"<<endl; return 0; }
對於計算機來說,這兩段程式碼並沒有什麼區別,但是對於人類來說,第二段程式碼看起來更舒服。
跟寫作文類似,你把所有內容擠在一塊,內容還是那些。但若是適當分行分段,則看起來會舒服很多。
因此,我強烈建議小朋友從小開始就養成良好的程式設計習慣。在這裡提一些C/C++編碼風格的建議:
1 使用C/C++風格的大括號,不要使用Java風格的大括號。上面第二段程式碼的大括號就是C/C++的風格,Java的大括號風格則是這樣的:
int main(){ cout<<"Hello World!"<<endl; return 0; }
2 兩個函式之間要加一或兩行空行,不要擠在一塊。
示範程式碼:
#include <iostream> using namespace std; int add(int x, int y) { return x + y; } int main() { int a = 1, b = 2; cout << add(a, b) << endl; return 0; }
3 using namespace std;和int main()之間也要加一或兩行空行。不要寫成下面這樣:
#include <iostream> using namespace std; int main() { cout<<"Hello World!"<<endl; return 0; }
4 函式內的段落之間加一行空行。比如for結束後加一行空行,if...else結束後加一行空行。
5 main()函式中的return 0;之前要加一行空行。
6 所有的if, else if, else, while後都要加{},哪怕{}中只有一行程式碼。注意,noip初賽卷子中,若if後只有一行程式碼,{}會被省略掉。for後面的{}大括號要也經常被省略掉。咱們不要這麼寫。
示例程式碼:
#include <iostream> using namespace std; int main() { int n; cin >> n; int a[n]; int sum = 0; for(int i = 0; i < n; i++) { sum += a[i]; } if(sum > 0) { cout << "Sum is positive." << endl; } return 0; }
7 加空格
逗號後面加一個空格;
分號後面加一個空格;
+、-、 、/、+=、-=、 =、/=、>、<、>=、<=、==、=前後各加一個空格;
8 寫成sum += a;的形式,不要寫成sum = sum + a的形式。同理還有-=、*=、/=。
9 在判斷是否相等的時候,寫成“if(常量==變數)”的形式,不要寫成“if(變數==常量)”的形式。
示例程式碼:
int a = 0; if(0 == a)//這裡不要寫成if(a == 0) { }
10 添加註釋
平時訓練時,在複雜邏輯的地方要加上註釋。這有兩個好處,一是以後有複習時一眼就能看出當時寫這段程式碼的用處,二是若需要去問別人時,別人容易看出這段程式碼的作用。
在考場裡上機程式設計時,不要寫註釋,因為浪費時間。