3.1算术运算符
5.1.1取余
#include<stdio.h> void main() { //因为9和7都为整数,所以结果中整数1后面的小数都被截断,只保留1 double a = 9 / 7; printf("a = %f\n", a); //若想要保留小数,则在参加运算的数字中,必须加上小数部分 double b = 9.0 / 7; printf("b = %.15f\n", b); //9 % 7 指的是9对7取余(取模) int c = 9 % 7; printf("c = %d\n", c); //计算机中取模的公式为 a - a / b * b //-9 - (-9) / 7 * 7 int d = -9 % 7; printf("d = %d\n", d); //9 - 9 / (-7) * (-7) int e = 9 % -7; printf("e = %d\n", e); //(-9) - (-9) / (-7) * (-7) int f = -9 % -7; printf("f = %d\n", f); }
计算机中取模的公式为 a - a / b * b
5.1.2 ++
#include<stdio.h> void main() { int a = 7; int b = a++;//等价于b = a; a = a + 1; printf("a = %d b = %d\n", a, b); int c = ++a;//等价于a = a + 1; c = a; printf("a = %d c = %d\n", a, c); //++a和a++可以独立使用,但两者完全等价,都是a = a + 1; ++a; printf("a = %d\n", a); a++; printf("a = %d", a); }
- b = a++;//等价于b = a; a = a + 1;
- c = ++a;//等价于a = a + 1; c = a;
- ++a和a++可以独立使用,但两者完全等价,都是a = a + 1
5.1.3练习
- 假如还有97天放假,请问还有多少个星期零几天?
#include<stdio.h> void main() { //华氏温度转换摄氏温度的公式为:5 / 9 * (华氏温度 - 100), double Fahrenhite = 97; double Centigrade = 5.0 / 9 * (Fahrenhite - 100); printf("%f对应的摄氏温度为%f", Fahrenhite, Centigrade); }
3.2关系运算符
3.2.1介绍
- 关系运算符的结果为真是非0,为假是0
- 关系表达式经常用在if或循环中
3.2.2关系运算符表示
3.2.3代码
3.2.3.1逻辑与运算符
#include<stdio.h> void main() { //double score = 97; //double score = 79; double score = 59; if (score >= 80) { printf("优秀"); } else if (score >= 60 && score < 80) { printf("良"); } else { printf("不合格"); } }
#include<stdio.h> void main() { int a = 9, b = 7; if (b < 8 && a++ > 9) {// a++ > 9判断中先进行a > 9的判断,再进行a++ printf("ok1\n"); } printf("a = %d\n", a); int c = 9, d = 7; if (d < 8 && ++c > 9) {// ++c > 9判断中先进行c > 9的判断,再进行++c printf("ok2\n"); }printf("c = %d\n", c); int e = 9, f = 7; if (f < 6 && ++e > 9) {// 如果在进行&&操作时,第一个判断的结果是false,则之后的条件就不再进行判断 printf("ok3\n"); }printf("e = %d", e); }
3.2.3.2逻辑或运算
#include<stdio.h> void main() { int a = 9, b = 7; if (a > 7 || b++ > 7) {//在进行逻辑与时候,第一个判断的结果是true,则之后的条件不再进行判断 printf("ok\n"); } printf("b = %d\n", b); }
3.2.3.3逻辑非运算
#include<stdio.h> void main() { //int score = 97; int score = 79; int result = score > 80; if (result) { printf("ok1\n"); } if (!result) {//当result取反为真时 printf("ok2"); } }
3.3赋值运算符
3.3.1介绍
赋值运算符就是将某个运算后的值,赋给指定的变量
3.3.2赋值运算符表示
3.3.3代码
#include<stdio.h> void main() { //交换a与b的值 int a = 9; int b = 7; int temp = a;//设置一个临时变量保存a的值 a = b;//将b赋值给a b = temp;//将temp赋值给b,即a原来的值复制给b,完成交换 printf("a = %d\tb = %d", a, b); //+=示例 int c = 97; c += a; printf("c = %d", c); }
- 运算顺序从右往左
- 赋值运算符的左边只能是变量,右边可以是变量、表达式、常量值
- 在运算时,如果被赋值的变量精度较小,则有可能会导致精度损失