2011年7月22日 星期五

2.2 數值的運算

第 2 講 之 2    Arithmetic Operations
       Topic: 數值的運算
現在我們來看看如何作數值的運算,請看下面的範例程式:
/* arop.c */
/* Arithmetic Operations */

#include <stdio.h>

int main (void)
{
    int a, b, c;

    a = 4;
    b = -3;
    c = a / b;

    printf ("%d\n", a + b);
    printf ("%d %d %d %d\n", a - b, a * b, c, a % b);

    return 0;
}
它的執行結果如下:
1
7 -12 -1 1
我們現在來看看這個程式。首先又是 #include <stdio.h> 這個編譯指示,這是因為我們如果要使用 printf 這個函數的話,就必須含入 stdio.h 這個標頭檔,詳細的情形留待討論函數時再說明。

接下來我們宣告了三個變數 a, b, c,它們的型態是有號整數。C 語言提供了幾個基本的運算子 (operator) 供數值運算使用:
        *       乘 (multiply)
        /       除 (divide)
        %       求餘數 (modulo)
        +       加 (add)
                正號 (plus sign)
        -       減 (subtract)
                負號 (minus sign)
        ()      括號 (parenthesis)
比較值得注意的是 C 語言並沒有求次方的運算子,想求 x 的 y 次方必須叫用標準函式庫,而不能直接寫成 x^y。

我們仔細觀察上面的程式,首先看到
printf ("%d\n", a + b);
這一行,它的意思就是把 a + b 顯示在螢幕上,然後把游標移動到下一行的開頭。printf 的用法是:
printf (format string, expression, expression ....);
格式 (format string) 是一個字串 (string),現在你只要記得 "%d\n" 是顯示一個整數,"%d %d %d\n" 是顯示三個整數就可以了 (當然,相信聰明的你知道要怎麼顯示兩個整數 ^_^ ),每一個 %d 依次序對應到後面運算式 (expression) 的運算結果。

所以我們現在可以知道 7 -12 -1 1 分別對應到 a - b, a * b, a / b, a % b。你也許會覺得奇怪,a / b 應該是 -4/3 = -1.3333 才對呀,為什麼會顯示 -1 呢?這是因為我們用一個整數型態的變數 c 來存 a / b 的結果,當你用整數型態的變數來存浮點數時,小數點以後的數字會被無條件捨去。

沒有留言:

張貼留言