三 表达式
表达式是一系列运算符和算子的组合,用来计算一个值。
运算符(operator):是指进行运算的动作,eg 加法运算符 “+”
算子(operand):参与运算的值 可是常数 也可是变量 还可是一个方法的返回值
运算符的优先级
问题如何被程序解决?
1.解决过程中会得到什么数据?程序中需要有什么变量?变量如何表达数据?
数据如何从用户那端读取进来?
2.有了这些数据之后如何计算
1 需要4个变量分别存放对应的小时跟分钟
2 分钟为60进制 把小时转换成分钟 作差后 所得值除60为小时 作差后 所得值取余为分钟
#define _CRT_SECURE_NO_WARNINGS
#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 = t1 - t2;
printf("时间差是%d小数%d分。", t/60, t%60);
return 0;
}
交换两个变量
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a = 5;
int b = 6;
int c;
c = a;
a = b;
b = c;
printf("a=%d b=%d \n", a, b);
return 0;
}
C为临时存放值的地方 固定的套路
复合赋值
total+=5 相当于 total=total+5
先把赋值运算符右侧的先算完在进行后续运算
递增递减运算符
前缀后缀 a++ ++a
printf("a++=%d\n", a++); 为a++作为一个表达式是a+1以前的结果 为10
printf("%d\n", a); 结果变成a==11
printf("++a=%d\n", ++a); 在a==11的基础上 加1作为他的结果 变成a==12