發信人: ax.bbs@bbs.ee.nthu.edu.tw. (athena), 信區: test
標  題: 星星流講座 0005
發信站: ☆清華電機☆ (Wed May  3 18:27:07 1995)
轉信站: star

星星流講座 0005         C 語言教室

第 2 講 之 2            Arithmetic Operations
                        Topic: 數值的運算

現在我們來看看如何作數值的運算,請看下面的範例程式:

/* arop.c */
/* Arithmetic Operations */

#include <stdio.h>

main ()
{
    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);
}

它的執行結果如下:

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 的結果,當你用整數型態的變數來
存浮點數時,小數點以後的數字會被無條件捨去。