【學習筆記】【C語言】算術運算,學習筆記算術運算
C語言一共有34種運算子,包括了常見的加減乘除運算
1. 加法運算+
除開能做加法運算,還能表示正號:+5、+90
2. 減法運算-
除開能做減法運算,還能表示符號:-10、-29
3. 乘法運算*
注意符號,不是x,而是*
4. 除法運算/
注意符號,不是÷,也不是\,而是/
整數除於整數,還是整數。1/2的值是0,這個並不是二分之一
5. 取餘運算%
什麼是取餘:兩個整數相除之後的餘數
%兩側只能是整數
正負性取決於%左側的數值
6. 注意點
1> 自動類型轉換
int a = 10.6;
int b = 10.5 + 1.7;
自動將大類型轉換為了小類型,會丟失精度
2> 自動型別提升
int b = 10.5 + 10;
將右邊的10提升為了double類型
double b = 1.0 / 2;
解決除法的精度問題
3> 強制類型轉換
double a = (double)1 / 2;
double b = (double)(1 / 2);
4> 運算順序
運算式
結合性(結合方向):2+3+4
優先順序:5+4*8-3
運算子的優先順序(從高到低)
優先順序 |
描述 |
運算子 |
1 |
括弧 |
()、[] |
2 |
加號或減號 |
+、- |
3 |
自增自減,非 |
++、--、! |
4 |
乘除,取餘 |
*、/、% |
5 |
加減 |
+、- |
6 |
移位元運算 |
<<、>>、>>> |
7 |
大小關係 |
>、>=、<、<= |
8 |
相等關係 |
==、!= |
9 |
按位與 |
& |
10 |
按位異或 |
^ |
11 |
按位或 |
| |
12 |
邏輯與 |
&& |
13 |
邏輯或 |
|| |
14 |
條件運算 |
?: |
15 |
賦值運算 |
=、+=、-=、*=、/=、%= |
16 |
位賦值運算 |
&=、|=、<<=、>>=、>>>= |
如果在程式中,要改變運算順序,可以使用()。
7.課程代碼
1 #include <stdio.h> 2 3 int main() 4 { 5 /*1.算數運算子的基本使用 6 int a = 10 + 1 + 2 - 3 + 5; 7 8 int b = -10; 9 10 int c = 10 * b;11 12 int d = 10 / 2;13 14 // 取餘運算(模運算)15 // %兩邊都是整數16 // %取餘結果的正負性只跟%左邊的數值有關17 int e = 10 % -3;18 printf("%d\n", e);19 */20 21 /*22 // 自動類型轉換(double->int)23 int a = 10.8;24 25 // 強制類型轉換(double->int)26 int b = (int) 10.5;27 printf("%d\n", a);28 */29 30 // 自動型別提升(int->double)31 double c = 10.6 + 6;32 33 double d = 1 / 3;34 35 double e = (double)3/2;36 37 printf("e的值是%f\n", e);38 39 40 return 0;41 }
1 #include <stdio.h> 2 /* 3 提示使用者輸入一個時間的秒數,比如500秒就輸入500,然後輸出對應的分鐘和秒,比如500s就是8分鐘20秒 4 */ 5 int main() 6 { 7 /* 8 // 將c的值固定在10以內 9 int a = 96546546;10 11 int c = a % 10;12 */13 14 // 1.提示使用者輸入時間15 printf("請輸入一個時間值(秒):\n");16 17 // 2.接收使用者輸入的時間18 int time;19 scanf("%d", &time);20 21 // 3.轉換成對應的分鐘和秒22 int minute = time / 60; // 分鐘23 int second = time % 60; // 秒24 25 printf("%d秒 = %d分鐘%d秒\n", time, minute, second);26 27 return 0;28 }