表达式;运算符,算子;取余计算;运算符优先顺序back

发布于 26 天前  148 次阅读  共 961 字


表达式

一个表达式是一系列运算符和算子的组合,用来计算一个值;例如以下的都是表达式

amount=x*(1+0.033)*(1+0.033)*(1+0.033);
total=5;
count=count+1;
value=(min/2)*lastvalue;

运算符

运算符(operator)是指进行运算的动作,比如加减法运算符"+",减法运算符"-",乘法运算符"*",除法运算符"/"取余运算符"%",赋值运算符"=";

算子(operand)是指参加运算的值,这个算子可能是常熟,也有个可能是变量,还可能是一个方法的返回值。

a=b+5其中a,b,5都是算子,"=", " + " 都是运算符;

value=(min/2)*lastvalue其中 value ,min,2, lastvalue都是算子,"=","/","*"都是运算符;

取余计算:计算时间差

#include <stdio.h>

int main()
{
  int hour1,minute1;
  int hour2,minute2;
  scanf("%d","%d",&hour1,&minute1);
  scanf("%d","%d",&hour2,&minute2);  
  int t1=hour1*60+minute1;
  int t2=hour2*60+minute2;
  int t=t2-t1;
  printf("时间差是%d小时%d分钟。",t/60,t%60);
  return 0;
}

取余是除法中的术语 ,取余数是指整数除法中被除数未被除尽部分,且余数的取值范围为0到除数之间(不包括除数)的整数;

先用hour*60+minute➡把两个变量(t1跟t2)小时单位转换成分钟单位;再用t2-t1得到两个时间差为t分钟;

t现在为分钟单位,我们让t/60转换成小时单位,没有用浮点数让它留小数部分,所以能得到正确的几小时,t%60取余,取t/60除不完的余数部分,这就是分钟;

运算符的优先顺序:

括号()里面的跟单目运算(如-b,+b(是取b的正值,和相反值;而不是加b,减b))最优先;运算顺序自右向左;

乘除取余第二算,顺序自左向右;

加减第三算,顺序自左向右;

赋值最后算;顺序自右向左;

赋值运算符"=":复制也是运算,也有结果;a=6的意思是把6的值赋予a,也就是6;a=b=6的结果是a=(b=6)→a=6,而不是a=6;