第一章:程式設計入門
隨學筆記:
小計:
<1>: ACM比賽中不能使用#include<conio.h> 中包含的getch(),clrscr()等函式,不能使用getche(),gotoxy()等函式。
<2>: 演算法競賽中如發現題目有異議應向相關人員詢問,不應主觀臆斷。
例如: 例題1-2中所講三位數翻轉末尾0是否輸出。
<3>: 儘量使用const關鍵字申明常數。
例如:const double Pi =acos(-1.0);
<4>: 邏輯運算子:
&&和&
& 無論左邊結果是什麼,右邊還是繼續運算;
&&當左邊為假,右邊不再進行運算。
但是兩者的結果是一樣的
||和|
| 無論左邊結果是什麼,右邊還是繼續運算;
||當左邊為真,右邊不再進行運算。
但是兩者的結果是一樣的
無特殊要求情況下,相比之下&&和||更高效。
<5>: 平時練習和寫模板時應適當添加註釋讓別人更容易理解,讓自己保持思路清晰。
//內容 OR
/* 內容 */
例題1-1:
<1>:浮點型輸入輸出時:float輸入輸出都是%f,double輸入時為%lf,輸出時為%f。
1 #include <cstdio> 2 #include <iostream> 3 using namespace std; 4 5 int main() 6 { 7 double t1; 8 scanf("%lf",&t1); 9 printf("%f\n",t1); 10 11 float t2; 12 scanf("%f",&t2); 13 printf("%f\n",t2); 14 15 return 0; 16 }
<2>:圓周率π用表示式 acos(-1.0)表示。
這其中acos為math.h裡的函式,double acos(double x);//x∈[-1,1]。//應用函式時記得申明標頭檔案#include<cmath>
1 #include <cstdio> 2 #include <cmath> 3 #include <iostream> 4 using namespace std; 5 const double Pi =acos(-1.0); 6 int main() 7 { 8 9 printf("%f\n",Pi); 10 11 return 0; 12 }
相關習題及程式碼:
1-4: 正弦和餘弦
輸入integer n,輸入n的正弦和餘弦值。
1 #include <cstdio> 2 #include <cmath> 3 #include <iostream> 4 using namespace std; 5 const double Pi=acos(-1.0); 6 7 int main() 8 { 9 int n; 10 while(~scanf("%d",&n)){ 11 double x=n*1.0/180*Pi; 12 printf("%.2f\n%.2f\n",sin(x),cos(x)); 13 } 14 return 0; 15 }
課後問題:
<1>: int 型數值的最大表示範圍:
1 #include <cstdio> 2 #include <cmath> 3 #include <iostream> 4 using namespace std; 5 6 int main() 7 { 8 int n1=1,cnt1=1; 9 while(++n1>0) 10 cnt1++; 11 printf("%d\n",cnt1); 12 13 int n2=-1,cnt2=-1; 14 while(--n2<0) 15 cnt2--; 16 printf("%d\n",cnt2); 17 return 0; 18 }
<2>: else總是與他前面離他最近的未配對的if配對。
1 #include <cstdio> 2 #include <iostream> 3 using namespace std; 4 5 int main() 6 { 7 int a=1,b=2; 8 if(a) 9 if(b) 10 a++; 11 else 12 b++; 13 printf("%d\n%d\n",a,b); 14 15 return 0; 16 }
/*可替換程式碼為
if(a)
b ? a++:b++;
*/