運算子 | 功能 | 範例 |
---|---|---|
+ | 加 | a + b |
- | 減 | a - b |
* | 乘 | a * b |
/ | 除 | a / b |
% | 取餘數 | a % b |
基本資料型態都可以做算術運算,以下為整數型態做算術運算的例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <stdio.h> int main( void ) { int a, b, c; a = 8; b = 3; c = a + b; printf ( "a + b = %d\n" , c); c = a - b; printf ( "a - b = %d\n" , c); c = a * b; printf ( "a * b = %d\n" , c); c = a / b; printf ( "a / b = %d\n" , c); c = a % b; printf ( "a %% b = %d\n" , c); return 0; } /* 《程式語言教學誌》的範例程式 檔名:arithint.c 功能:示範整數的算術運算 作者:張凱慶 時間:西元2010年4月 */ |
編譯後執行,結果如下

注意程式的第 18 行
18 | c = a / b; |
由於是利用整數型態進行計算,所以得到的結果,程式印出的第四行也會是整數,這被稱為整數除法。
以下為浮點數型態做算術運算的例子,請留意,浮點數型態不能做取餘數的計算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include <stdio.h> int main( void ) { float a, b, c; a = 8.3; b = 2.2; c = a + b; printf ( "a + b = %f\n" , c); c = a - b; printf ( "a - b = %f\n" , c); c = a * b; printf ( "a * b = %f\n" , c); c = a / b; printf ( "a / b = %f\n" , c); return 0; } /* 《程式語言教學誌》的範例程式 檔名:arithfloat.c 功能:示範整數的算術運算 作者:張凱慶 時間:西元2010年4月 */ |
編譯後執行,結果如下

由於字元型態直接對應到 ASCII 編碼的整數值,所以利用算術運算來進行字元符號的轉換,如以下為英文大小寫轉換的例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <stdio.h> int main( void ) { char t = 'T' ; printf ( "t = %c\n" , t); t = t + 32; printf ( "大小寫轉換後 t = %c\n" , t); return 0; } /* 《程式語言教學誌》的範例程式 檔名:arithchar.c 功能:示範字元的算術運算 作者:張凱慶 時間:西元2010年4月 */ |
編譯後執行,結果如下

5 則留言:
不好意思,能請教一個問題嗎,為什麼我打
(3-0)/(9-0)*(9-0),為什麼程式答案總是都是0,謝謝
因為 (3-0)/(9-0) 做整數除法會得到 0 ,所以這裡要得到正確結果要做強制型態轉換,也就是要在 (3-0)/(9-0)*(9-0) 的前面加上 (float) 變成浮點數。
謝謝,不過我加了後,他變0.0000000
因為看書寫的內插搜尋法,但是中間值都是從零開始,對我這個新手真不知道如何是好啊
其他的程式問題,請到 G+ 社群或 FB 社團發問吧!謝謝 ^_^
張貼留言