C语言学习笔记 02 运算符合表达式

#02 运算符合表达式

##一.基本算术运算符

img

1.1 例一:

程序执行 初始化赋值 a.b 扫描到 b 的值 等 a+b相加 进行运算 在执行打印输出

include<stdio.h>
	int main() 
	{  
	int a = 10; b = 5; //对 a和b 进行初始化,并赋值   
	b = a +b ;  
	printf("%d"  b);   
	getchar();   
	getchar(); 
	}

img

1.2 例二 :

如果我在 b =a+b ; 后再定义一个 C = A*B 出来的值是 150 ,因为B的值已经执行 a+b了

代码附上

int main() { int a = 10, b = 5; b = a + b; int c = a * b; printf("%d\n%d", b,c); getchar(); getchar(); return 0; }

int main()
{ int a = 10, b = 5; b = a + b; int c = a * b; 
	 printf("%d\n%d", b,c);   
	 getchar();   
	 getchar();   
	 return 0;

img

1.3.除法的注意事项

代码如上

int main() { //除法注意事项 double a = 10, b = 6;//算 10/6 
double c = a / b; 
    printf("%f", c); 	
    getchar(); 
    getchar(); 
    return 0; 
}

注释:整形之间没有小数

img

结果是 1.666667 ,为什么呢, 应为 %f 默认double类型 有效位 15-16个 为什么只有这些麻烦 haay老师给我在讲解一下111

1.4. 取余 %

代码如下

取余是2个数之间相除

int main() { int a = 10, b = 6; printf("%d", a%b); 	getchar(); getchar(); 	return 0; }

 

img

1.5. 自增and 自减

++在前面 表示 先加运算后 再执行

++ 再后面 表示 先执行后赋值

int a = 0, b = 0; a++; int c = a; printf(“前面的++ %d”, c); 1 printf(“后面的++ %d”, a++);1 //为什么这部会等于 一 应为前面a++定义了在打印输出前面 加1了 最 后的不影响结果 printf(“前面的++ %d”, ++b);1 // printf(“后面的++%d”, b++);0

img

img

##二. 常用运算符

2.1 赋值运算符

a++; a = a + 1; a = a + 2; int a = 0; a += 2; a = a + 2; a += 3; => a [+]= a + 3; //不理解!!!

2.2比较运算符

> 大于 >=

< 小于 <=

=

!= 不等于

int a = 0, b = 3; printf("%d", a != b);//1 **printf("%d", a > b);//**0 **printf("%d", a >= b);//**0 getchar(); getchar(); return 0;

img

2.3.表达式与语句

int a = 10, b = 6; //语句1 表达式? 这个不是 printf("%d", a != b); //返回一个 false/true bool 这个是表达式 getchar(); getchar(); return 0;

img

a 不等于 b 表达式成立 返回结果为 true 结果为真

2.4 逻辑运算符

! 非 取反

&& 与 都为一 ,为1 ,有1为0 都为0

| | 或 有1 为1 都为1 都是0 全是 0

注释:这些很重要 ,因为我老是忘记!!!

int main() { printf("%d", 0 && 1); //与运算 && 2个都为1 条件为真就是1,不然就为假0 printf("%d", 1 && 0); //与运算 && 2个都为1 条件为真就是1,不然就为假0 printf("%d", 1 || 0);//或运算 只要其中有1 就是1,要是都是0,就都为假 printf("%d", 0||0); getchar(); getchar(); return 0; }

img

img

2.5 三目运算符

一个运算符对三个操作数运算 ?:

​ true/false

​ 表达式1 ? 表达式2 :表达式3;

​ 第一个表达式判断 成立,则返回 : 前面的值 否则返回 : 后面的值

公式: printf("%d", 6 ? 2 : 3);

int A = 6, B =10; printf("%d",A>B?A:B;)

使用三目运算符比较 A.B的大小 ,返回大的数

要返回小的数 就 b:a ok 过

img

##三.类型转换

3.1 隐式转换

float f = 3.14;// 隐式转换? 有的 3.14 默认什么类型 double double res = 6.66 / 2;// 隐式转换? 数据类型不同 要不要转换 肯定是要的 printf("%f\n%f", res,f);

输出的结果为 默认 double类型

img

说实话,这块就明白了 flooat 输出模式默认 double,没感觉到其他意思…

3.2 显示转换 (数据类型)变量 一般不要强制转换 ?

​ printf("%d", (int)3.14);// ? 什么类型整形 3 float f = 3.14;// 亿 int 亏了多少 0.14 printf("%d", (int)f);// ? 什么类型整形 3 printf("%f", (double)3);// float double printf(“hello harry”);

第一个 是将3.14强制转化为int 整数类型

把 浮点数类型 f 强制转化为int 类型

把 3 输出为 double 类型 为 3.00000

开心笔记搞定 !!!

END

怎么可能 还有作业呢 ^^^^^

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2MHCwUfE-1622717793452)(https://gitee.com/ycqsure/iamgehow/raw/master/img/20210603185407.png)]

1.先打3边代码 ?

what? 我不是没事情都在敲代码么 ok 完美 过

\2. 一下程序 输出的结果是什么(不能执行看结果,自己推算?)

int x = 0, y = 2;

int res = (++x; || ++y);

printf("%d", res);

我告诉你不运行我都知道 是 1,为什么呢,因为 ++ 是先运算在执行的

也就四 1 || 3 //我可耻的有往前翻了一下 ,我有忘记 || 这个是或运算

都是1 就位1

答案是 1

\3. 上一题 y 最后输出的值是 3

\4. 从键盘输入三个数,输出其中最大的数

代码 #include<stdio.h> //作业 4 int main() { int a, b, c; scanf("%d\n%d\n%d", &a, &b, &c); int max = a > b ? (b > c ? b : c) : (a > c ? a : c); printf(“三目运算符最大的数是:%d\n”, max); int x, y, z; scanf("%d\n%d\n%d", &x, &y, &z); if (x > y ) { printf(“x最大是:%d”, x); } else if (y > z) { printf(“y最大是:%d”, y); } else if (z > x) { printf(“z最大是:%d”, z); } getchar(); getchar(); return 0; }

img

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值