C語言基礎

程式語言

程式執行環境

程式整合開發工具

程式基礎

輸出入敘述

  • cin

  • cout

變數與資料型態

字元型態

char

整數型態

  • byte(8位元)
  • short(16位元)
  • int(32位元,預設)
  • long(32位元)

浮點數型態

  • float
  • double(預設)

程式敘述與運算子

選擇與判斷敘述

if/if...else

switch

重覆敘述

goto

goto是程式中可以“跳至“任何一個位置的敘述,首先要先設定一個路標,再用goto跳至這個路標。範例:


Repeat:
cout << "這是我的第一支程式" << endl;
goto Repeat;

上面的程式會重複地執行cin與goto,於是,變成了一個“無窮盡“的迴圈。那要如何讓上面的程式停上來?

char r;

Repeat:
cout << "這是我的第一支程式" << endl;
cout << "是否重複?(按Y表重複)" << endl;
cin >> r;
if ( r == 'Y' || r == 'y') goto Repeat;

上面的程式中,依據使用者輸入Y或y來決定是否執行goto。

while

while是程式中用來判斷是要重複執行的程式元素,底下的程式示範了一個從1印到9的迴圈程式:

  int i = 1;

  while ( i <= 9) {
    cout << i << "  ";
    i++;
  }

  cout << endl;

do while

do..while與while不同之處在於,do...while是先做一次,然後再判斷是否重複。例如,生活中,先嚐一下,好吃繼續吃…

  char r;
  do {  
    cout << "這是我的第一支程式" << endl;

    cout << "是否重複?(按Y表重複)" << endl;
    cin >> r;
  } while ( r == 'Y' || r == 'y');

for

for 敘述的語法

先前,我們學會 while、do-while 兩種迴圈的用法,接著我們看第三種迴圈, for 的語法:

for (起始敘述; 條件式; 更新敘述) {指令一;

for (起始敘述; 條件式; 更新敘述) {
  指令一;
  指令二;
  指令三;
}

起始值是進入迴圈一開始要執行的動作,條件式是進入迴圈的條件,而更新值則是執行完每次的迴圈要執行的動作,我們舉個例子來看:

for(i=1; i<=10; i++)  cout << i << ",";

上面的語法,程式執行的步驟如下:

1.設定變數 i=1;
2.檢查 i<=10 是否成立,不成立則跳出迴圈 ( 即跳至 6. )
3.執行 cout << i << ",";
4.執行 i++; ( 即 i=i+1; )
5.跳至 2. 的位置
6.迴圈結束

在 for 迴圈中,我們可以使用 break 和 continue 指令來中斷整個迴圈執行或跳至迴圈結尾處。

如果不需要起始值或更新值,則可以空白,若條件式空白,則為無條件進入迴圈。

如果起始值或更新值有兩個以上,可以用逗點 , 隔開,例如:

for(a=1, b=1; a<=100; a++, b++)

範例:使用for來計算1+2+...+N 之總合

1+2+...+N 之總合可以利用 S= (1+N)*N/2 這個公式直接求解,但這邊我們拿來當for的應用實例,用for讓它從 1 加到 100,整個程式如下:


 int sum=0, i;
 for(i=1; i<=100; i++) sum += i;
 cout << "1+2+...+100= " <<  sum;

上面的 sum 代表總合,一開始是 0,接著每次加上 i 當時的值,而 i 的值會從 1 遞增到 100,最後 sum 的值就是 1 加到 100 的總合了。

格式化輸出敘述

陣列

  陣列是一種連續性的資料儲存空間,一陣列裡的資料型態是一樣的,元素與元素在記憶中的位置是相鄰的,通常我們會利用一個陣列變數來代表整體的資料。

陣列分為一維陣列陣列、二維或多維陣列。

表示方法如下:

資料型態 陣列名稱[陣列大小]; //一維陣列

int a[10];

資料型態 陣列名稱[陣列大小][陣列大小]; //二維陣列 int a[10][10];

宣告陣列變數時,也可一併給與初始值:

  int x[5] = {1,2,3,4,5};
  int y[] = {1,2,3};
  int z[3][4] = {{1,2,3,4},{5,6,7,8},{0,1,2,3}};
  int a[];

上面例子裡的y陣列大小,是由後面{}裡元素的個數決定。int a[]並沒有分配儲存陣列內容的空間,因此可視為指標宣告。

陣列元素的引用方式:

陣列名稱[索引值] a[2]

陣列名稱[索引值][索引值] a[1][2]

索引值是指出要檢索陣列中第幾個元素,在C/C++中,索引值一律從0起算。

字元與字串

字元是單一個字元,以單引號框起來的,如:

'A','a'

字串是一個字元以上的字元陣列,而且,陣列會多一個結束字元'\0',表示字串的結束,字串以雙引號框起來,如:

"I like apple."

"I like programming."

字串既然叫字元陣列,那就能夠以索引的方式來存取字串的每一個字元。如:

char str[] = "I like programming.";
cout << str[4] << endl;

上面程式會輸出k

函式與公用函式(一)

results matching ""

    No results matching ""