当一个程序在运转时候,运算是非常重要的步骤,熟练的使用运算符对编写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
常用的运算符就这么多,在实际运用中,我们常常会使用运算符进行一些混合运算,还需要注意运算符的优先级和结合性进行使用。