C語言學習(三)表示式

2021-09-10 06:02:32 字數 1708 閱讀 5049

1.表示式

乙個表示式是一系列運算子與運算元的組合,用來計算乙個值。

運算子:進行運算的動作

運算元:可以是值、常數或者變數。

例1:計算時間差

輸入兩個時間,每個時間分別輸入小時與分鐘的值,然後輸出兩個時間之間的差。

int hour1,minute1;

int hour2,minute2;

scanf("%d %d",&hour1,&minute1);

scanf("%d %d",&hour2,&minute2);

② 相減可能出現借位

分析:我們可以將時間轉化為分鐘進行相減計算,然後再轉化為幾時幾分進行輸出。

關於結果的轉化,由於整數除法會把小數部分除掉,所以小時計算只需要用時間除以60;分鐘部分可以用取餘,用時間除以60取餘既可。

**如下:

t1=hour1*60+minute1;

t2=hour2*60+minute2;

t=t2-t1;

printf("時差為%d小時%d分",t/60,t%60);

2.運算子優先順序

例2:平均數計算

分析:由於兩個數相加再進行除法,得到的結果不是整數,所以結果可以賦值給乙個double的變數。

**如下:

int a,b;

double c;

scanf("%d %d",&a,&b);

c=(a+b)/2.0;

printf("平均值=%f\n",c);

在上面的運算中由於除法算術優先順序比加法高,所以用到了括號。

在c語言中也和平時一樣,乘除以及%比加減優先順序要高。

3.賦值運算子

賦值也是運算,也有結果,如a=6的結果是將6這個值賦給a這個變數;

賦值語句是從右到左;

賦值運算子的優先順序最低,a=b+5語句中先計算b+5,再將結果賦值給a。

4.交換兩個變數

例3:交換兩個變數a、b的值

分析:① 在c語言中是按照**順序進行運算的,如果直接寫a=b;b=a;是不會一起進行運算的,所以這樣並不能完成變數交換的需求。

② 要完成交換,就需要乙個中間變數c,先將a的東西存入c,再將b的值賦給a,c的值賦給b既可完成交換。

**如下:

int a=5;

int b=6;

int c;

c=a;

a=b;

b=c;

printf("a=%d,b=%d\n",a,b);

5.復合賦值

五個算術運算子±/%,可以與賦值運算子=結合起來形成復合運算子:「+=」、「-+」、「=」、「/=」、「%=」。

a += 5;

a=a+5;

6.遞增遞減運算子

「++」與「- -」是兩個特殊的運算子,表示遞增與遞減運算。

a++;

a +=1;

a=a+1;

字首字尾:

a++表示a加1之前的值,加一是附帶動作;++a表示a加1之後的值。

C語言學習筆記(三) 條件表示式

條件表示式 表示式1?表示式 2 表示式 3 1 條件表示式的執行順序 先求解表示式 1,若為非 0 真 則求解表示式 2,此時表示式 2的值就作為整個表示式的值。若表示式 1的值為 0 假 則求解表示式 3,表示式 3的值就是整個條件表示式的值。2 條件表示式優先於賦值運算子,max a b a ...

C語言學習筆記 C語言中的逗號表示式

逗號表示式 exp1,exp2,epx3,expn 1 逗號表示式是 c 語言中的 貼上劑 2 逗號表示式用於將多個子表示式連線為乙個表示式 3 逗號表示式的值為最後乙個子表示式的值 4 逗號表示式中的前 n 1 個子表示式可以沒有返回值 5 逗號表示式按照從左向右的順序計算每個子表示式的值 inc...

C語言學習 運算子與表示式

關係表示式 條件表示式 邏輯表示式 逗號表示式 1 左右運算元都必須是整型 2 左右運算元都是整型的話,得到的也是整型,有小數的話被忽略 左右運算元都是浮點型,得到的也是小數。例如a b a a a 注 a b 3 a a b 3 0代表false,1代表true,非零即為真 例如printf d ...