【学习笔记】【C语言】算术运算
C语言一共有34种运算符,包括了常见的加减乘除运算
1. 加法运算+
除开能做加法运算,还能表示正号:+5、+90
2. 减法运算-
除开能做减法运算,还能表示符号:-10、-29
3. 乘法运算*
注意符号,不是x,而是*
4. 除法运算/
注意符号,不是÷,也不是\,而是/
整数除于整数,还是整数。1/2的值是0,这个并不是二分之一
5. 取余运算%
什么是取余:两个整数相除之后的余数
%两侧只能是整数
正负性取决于%左侧的数值
6. 注意点
1> 自动类型转换
int a = 10.6;
int b = 10.5 + 1.7;
自动将大类型转换为了小类型,会丢失精度
2> 自动类型提升
int b = 10.5 + 10;
将右边的10提升为了double类型
double b = 1.0 / 2;
解决除法的精度问题
3> 强制类型转换
double a = (double)1 / 2;
double b = (double)(1 / 2);
4> 运算顺序
表达式
结合性(结合方向):2+3+4
优先级:5+4*8-3
运算符的优先级(从高到低)
优先级 |
描述 |
运算符 |
1 |
括号 |
()、[] |
2 |
正负号 |
+、- |
3 |
自增自减,非 |
++、--、! |
4 |
乘除,取余 |
*、/、% |
5 |
加减 |
+、- |
6 |
移位运算 |
<<、>>、>>> |
7 |
大小关系 |
>、>=、<、<= |
8 |
相等关系 |
==、!= |
9 |
按位与 |
& |
10 |
按位异或 |
^ |
11 |
按位或 |
| |
12 |
逻辑与 |
&& |
13 |
逻辑或 |
|| |
14 |
条件运算 |
?: |
15 |
赋值运算 |
=、+=、-=、*=、/=、%= |
16 |
位赋值运算 |
&=、|=、<<=、>>=、>>>= |
如果在程序中,要改变运算顺序,可以使用()。
7.课程代码
1 #include <stdio.h> 2 3 int main() 4 { 5 /*1.算数运算符的基本使用 6 int a = 10 + 1 + 2 - 3 + 5; 7 8 int b = -10; 9 10 int c = 10 * b; 11 12 int d = 10 / 2; 13 14 // 取余运算(模运算) 15 // %两边都是整数 16 // %取余结果的正负性只跟%左边的数值有关 17 int e = 10 % -3; 18 printf("%d\n", e); 19 */ 20 21 /* 22 // 自动类型转换(double->int) 23 int a = 10.8; 24 25 // 强制类型转换(double->int) 26 int b = (int) 10.5; 27 printf("%d\n", a); 28 */ 29 30 // 自动类型提升(int->double) 31 double c = 10.6 + 6; 32 33 double d = 1 / 3; 34 35 double e = (double)3/2; 36 37 printf("e的值是%f\n", e); 38 39 40 return 0; 41 }
1 #include <stdio.h> 2 /* 3 提示用户输入一个时间的秒数,比如500秒就输入500,然后输出对应的分钟和秒,比如500s就是8分钟20秒 4 */ 5 int main() 6 { 7 /* 8 // 将c的值固定在10以内 9 int a = 96546546; 10 11 int c = a % 10; 12 */ 13 14 // 1.提示用户输入时间 15 printf("请输入一个时间值(秒):\n"); 16 17 // 2.接收用户输入的时间 18 int time; 19 scanf("%d", &time); 20 21 // 3.转换成对应的分钟和秒 22 int minute = time / 60; // 分钟 23 int second = time % 60; // 秒 24 25 printf("%d秒 = %d分钟%d秒\n", time, minute, second); 26 27 return 0; 28 }