學習筆記-C語言1(程式設計入門)
C語言和C++是作為一名程式設計師必備技能,非科班出身的我對這些語言一直是一知半解,後來更是直接使用簡單易上手的python,matlab語言。今天終於開始系統的學習了C了,記錄一些學習筆記,方便後面檢視,如有不妥,還請幫忙指正。
1. 檔案開頭
檔案開頭要加入:# include<stdio.h>,表示引入標準的C語言庫,如果需要其他的庫,則同樣這樣新增,如: # include<math.h>。程式的入口為main函式,寫法如下:
int main(){
...
return 0;
}
2. 輸入輸出
輸入用scanf,變數傳入要用:&;輸出用printf,直接用變數名。如:
scanf('hello,world! I am %d years old', &a)
printf('hello,world! I am %d years old', a)
3. 定義常量
定義常量有兩種方式。兩者子在使用時候沒有什麼不同,只不過早先時候為了節省記憶體,常用define(define其實就是預處理,只有在程式編譯的時候才處理,這樣記憶體的使用較低)。現在則更多使用const(因為預處理其實就是巨集,當程式比較大的時候經常會出現各種奇怪的問題)
- #define Pi 3.1415926
- const double Pi=3.1415926
4. 變數的型別和轉換說明符
5. 關係運算符和邏輯運算子及優先順序
6. if 語句、switch語句、for 語句
if語句:
if(表示式){
語句1;
語句2;
...
語句n;
}
else{
語句;
}
switch語句:
switch(integer_expression){
case constant_1:
...
break;
case constant_2:
...
break;
...
default:
...
break;
}
for 語句:
for迴圈中的(迴圈開始時執行1次,迴圈條件,每次迴圈結束後執行),均可以不寫在(;;)中。
例如:
#include<stdio.h>
int main(){
//方法1
int sum;
int i;
sum=o;
for(i=1;i<=100;i++){
sum=sum+i;
}
printf("sum= %d",sum);
//方法2
sum=0;
i=1;
for(;i<=100;i++){
sum=sum+i;
}
printf("sum= %d",sum);
//方法3
sum=0;
i=1;
for(;i<=100;){
sum=sum+i;
i++;
}
printf("sum= %d",sum);
//方法4
sum=0;
i=1;
for(;;){
sum=sum+i;
i++;
if (i>100){
break;
}
}
printf("sum= %d",sum);
return 0
}
7.遞增與遞減雲演算法
a++: 自加運算後算,再算表示式的值
++a:自加運算先算,再算表示式的值
8. 演算法設計入門
- 有窮性:演算法必須能在執行有限個步驟之後終止。
- 確切性:演算法的每一步驟必須有確切的定義。
- 輸入項:如鍵盤輸入、檔案輸入的資料或演算法本身定義的初始條件,以刻畫運算物件的初始情況。
- 輸出項:即程式對於輸入資料加工後的結果,沒有輸出的演算法是毫無意義的。
- 可行性:演算法中執行的任何步驟都是可執行的操作步,即每個計算步都可以在有限時間內完成。
9. 哥德巴赫猜想