當一個程序在運轉時候,運算是非常重要的步驟,熟練的使用運算符對編寫c語言非常重要。由於它是構造c語言的表達式工具,所以c語言中的運算符極其豐富。我們如果按照操作個數分類可分爲:單目運算符,雙目運算符,三目運算符。按照運算符的性質可分爲:算數運算符,關係運算符,邏輯運算符和賦值運算符等,下面就按照性質說說常用的一些運算符。
1、算數運算符
算數運算符是c語言用來完成基本運算的符號,說簡單點就是用來完成四則運算,也就是我們說的小學學的加減乘除。
運算符 | 類型 | 運算 | 含義 | 結合性 |
---|---|---|---|---|
- | 單目 | -x | 取符負值 | 從右到左 |
* | 雙目 | x*y | 乘法運算 | 從左到右 |
/ | 雙目 | x/y | 除法運算 | 從左到右 |
% | 雙目 | x%y | 取餘運算 | 從左到右 |
- | 雙目 | x-y | 減法運算 | 從左到右 |
+ | 雙目 | x+y | 加法運算 | 從左到右 |
在運用這些運算符的時候一定要注意以下幾點:
- 兩個整數做除法運算時,結果仍然是整數
6/4=1
這裏6/4應該等於1.5,而它的運算結果卻爲1,是因爲這個。那麼如果想得到1.5怎麼辦嘞?
只需要將運算中的一個數該爲實型數據就可以啦。
6.0/4=1.5
- 求餘時,餘數符號與被除數相同
15%6=3,15%(-6)=3,(-15)%6=-3
- 數學中的【】和{}在算數運算符中不可用。
必須要用時,只需用()多套幾層就可以了。
((3+3)*(4*4))+5
- 不要使用c語言不允許的標示符
例:圓的周長
2*π*r
π在c語言中不被識別,必須先給它賦值。
double π=3.14,circle,r;
circle=2*π*r;
讓我們來道例題消化下吧
例題
給定一個華氏溫度F,本題要求編寫程序,計算對應的攝氏溫度C。計算公式:C=5×(F−32)/9。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int F,C;/*定義變量F,C*/
scanf("%d",&F);
C=5*(F-32)/9;/*運用運算符計算公式*/
printf("Celsius = %d",C);/*打印輸出*/
return 0;
}
輸入
37
輸出
Celsius = 2
怎麼樣,是不是很簡單?
2、賦值運算符
賦值運算是指將一個數據的值賦給另外一個變量,意義與數學中的“=”類似。它屬於雙目運算,結合性爲從右到左。
- 普通賦值運算
標準格式
變量名=表達式
注意:左邊只能是變量!不允許是算數表達式或常量。
- 複合賦值運算
在“=”前面加上一個雙目運算後,就可以構成複合賦值運算符了。
即類似於+=,-=,*=之類的。使用這種運算產生的代碼短,運行速度快而且簡潔。
例:
a+=3
輸出結果與下面這個相同
a=a+3
額,,這個比較簡單,就不需要例題了吧。
3、關係運算符
所謂的關係運算符其實就是我們說的比較大小。
運算符 | 運算 | 含義 |
---|---|---|
< | x<y | 小於 |
<= | x<=y | 小於等於 |
> | x>y | 大於 |
>= | x>=y | 大於等於 |
== | x==y | 等於 |
!= | x!=y | 不等於 |
雖然它和我們平時使用的類似,但還是有一些需要我們注意的地方
1.c語言中“=”是賦值,而“==”纔是等於,兩者看上去差不多,其實是天壤之別!
2.在數學中a>b>c意思是a>b且a>c,但c語言會根據優先性和結合性逐個判斷。
如果說的不夠清楚,舉個例子就明白了:假設a賦值爲5,讓計算機判斷,如果a大於3且小於6,就輸出1,否則就輸出0。如果我們寫的是
6>a>3
計算機輸出就會是0,因爲計算機先判斷a<3,符合,則此時結果爲1,再判斷1>3,不符合,計算機最後就會輸出0。
來個關於關係“等於”的例題吧,因爲很多人容易把“=”和“==”混淆
例:判斷一個數是否能被另一個整數整除是一個挺簡單的問題,一般一個模運算就可以搞定了,懶惰的曉萌還是不想自己做,於是找到你幫他寫代碼,你就幫幫他吧。
輸入格式
輸入包括兩個由空格分開的整數 M和 N(1≤M,N≤500)。
輸出格式
輸出包括一行,如果 MM 可以被 NN 整除就輸出YES,否則輸出NO(結果大小寫敏感)。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int M,N;/*定義變量*/
scanf("%d %d",&M,&N);/*輸入M,N注意它們之間有空格*/
if(M%N==0)/*判斷M是否能被N整除,若此時用的是‘=’,編譯就會報錯*/
printf("YES");/*能整除,則打印輸出YES*/
else
printf("NO");/*否則,輸出NO*/
return 0;/*這裏用到了一個條件語句if,如果還沒學你可以查找下書本上介紹的使用方法*/
}
輸入
20 2
輸出
YES
寫題時一定要細心,如果編譯報錯,就要小心的從新檢查一遍,看看是不是有些小細節有沒有處理好。
4、邏輯運算
運算符 | 類型 | 運算 | 含義 | 結合性 |
---|---|---|---|---|
! | 單目 | !x | 邏輯非 | 從右到左 |
&& | 雙目 | x&&y | 邏輯與 | 從左往右 |
丨丨 | 雙目 | x丨丨y | 邏輯或 | 從左到右 |
注意:**當邏輯運算的前一個條件不成立時,後一個條件將不會再執行
話不多說,直接實戰
例
請輸入一個數,判斷他是否大於1且小於6,是則輸出yes,否則輸出no。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int M;/*與上一題一樣,定義一個整型變量*/
scanf("%d",&M);/*輸入M*/
if(M>1 && M<6)/*使用運算符邏輯與判斷*/
printf("YES");/*成立,則打印輸出YES*/
else
printf("NO");/*不成立,則打印輸出NO*/
return 0;
}
輸入
7
輸出
NO
5、條件運算
條件運算時唯一的一個三目運算。
格式如下:
表達式1?表達式2:表達式3
計算機運算步驟如下:
1.運行表達式1;
2.若表達式1不爲0,計算機求第二個表達式的值。若爲0,計算機求第3個表達式的值。
我們常常可以用它求兩個變量的最值。
例
編寫一個程序,使輸入兩個數後,能輸出其中較大的數。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int M,N,max;
scanf("%d %d",&M,&N);
max=M>N?M:N;
printf("%d",max);
return 0;
}
輸入
5 1
輸出
5
常用的運算符就這麼多,在實際運用中,我們常常會使用運算符進行一些混合運算,還需要注意運算符的優先級和結合性進行使用。