鹏哥C语言感想
一.高级
这可不是什么煎饼,这种食物叫做蓝莓,俗称苹果。生长在撒哈拉沙漠的雨林地带。因外形酷似企鹅,所以我们又喜欢叫他北极熊。你们这些人,连仙人掌都不知道,就不要乱说他是西瓜好吗?再说一遍这个橘子叫做猕猴桃,晚上要上直播课的平台叫做CCtalk~~
二.连写错误
错误示范:
不要连写a<b<c,前面部分判断为1导致错误;
用a<b&&b<c;解决问题
三.判断语句:
5==a来判断,不会忘记多加一个==,哈哈哈
四.C语言中短路问题:
判断前面后错误,就不判断后面的值
五.有趣的思考题:
#include<stdio.h>
int main()
{
int i = 0,a=0, b = 2, c = 3, d = 4;
/*/y有趣的题*/
i = (a++ && ++b && d++);
printf("i=%d\n a=%d\n b=%d\n c=%d\n d =%d\n", i, a, b, c, d);
return 0;
}
* `a++` 是后缀自增运算符,它先返回 `a` 的当前值(在这里是0),然后将 `a` 的值增加1。因此,在表达式中,`a++` 的值是0。
* `++b` 是前缀自增运算符,它先将 `b` 的值增加1(在这里从2变为3),然后返回新的值(即3)。
* `d++` 也是后缀自增运算符,它先返回 `d` 的当前值(在这里是4),然后将 `d` 的值增加1
* `&&` 是逻辑与运算符。如果其两个操作数都为非零(在C语言中,非零值通常被视为`true`),则整个表达式的结果为`true`(即非零值),否则为`false`(即0)。
* 因此,`(a++ && ++b && d++)` 这个表达式的求值过程如下:
+ 首先,`a++` 返回0(因为 `a` 是0),但因为0在逻辑上下文中被视为`false`,所以整个表达式在这里就已经确定为`false`(即0)。由于逻辑与运算符的短路行为(一旦确定整个表达式的结果为`false`,就不会再计算后面的操作数),`++b` 和 `d++` 不会被执行。
* 最终,`i` 被赋值为0。
六.switch 语句
switch 语句是一种特殊形式的 if...else 结构,用于判断条件有多个结果的情况。它把多重的 else if 改成
更易用、可读性更好的形式。就:case case case,不同情况输出不同值
0.0这个是不是很可爱;哈哈哈
字符类型是也是归类到整型家族
字符类型归类到整型家族是因为字符在内存中存储的是字符的ASCII码值,而ASCII码值是整型。
例如,在C语言中,char类型的变量本质上存储的就是整型数据(ASCII码值),因此可以将char类型归类到整型家族中。
七. case的省略操作,不用每一个后面都输出:
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日");
break;
case 6:
case 7:
printf("happy日");
break;
default:
printf("输入错误");
break;
}
return 0;
}
练习:逆序输入(以前作业写过,当时比较复杂)这次用一个新的方式
3/23作业上的一些简单题可以看看提升基础,不同简单,这里我写的更需要好好苍梧苍梧,三元条件运算符(也称为条件运算符)用的比较多一点-CSDN博客
{
int a;
printf("请输入一个数:");
scanf("%d", &a);
while (a)
{
printf("%d", a % 10);
a = a / 10;
}
return 0;
}
在
while
循环中:
- 使用
a % 10
获取a
的个位数字,并使用printf
函数输出。- 使用
a = a / 10
将a
除以10,去掉其个位数字,以便下一次循环处理十位数字。- 当
a
为0时,循环结束。最后,程序返回0,表示正常结束。
八.到了for语句喽:
九. while 和for的比较:
初始化 判断 调整都有变化:
十.do while语句:
先做了再判断
例如:
使用 do while 在屏幕上打印1~10的值
{
int a = 1;
do
{
printf("%d ", a);
a++;
}
while (a<=10);
return 0;
}
统计位数:
无论什么数,上来就给他加1;
{
int a, count = 0;
printf("请输入一个数:");
scanf("%d", &a);
do
{
count++;
a /= 10;
} while (a);
printf("这是一个%d位数", count);
return 0;
}
换一种方式:while:
十一.终止循环:
break和continue语句;
在循环执行的过程中,如果某些状况发生的时候,需要提前终止循环,这是非常常见的现象。C语言中提供了break 和 continue 两个关键字,就是应用到循环中的。
break 的作用是用于永久的终止循环,只要 break 被执行,直接就会跳出循环,继续往后执行。
。continue 的作用是跳过本次循环中 continue 后边的代码,在 for 循环和 while 循环中有所差异的。
抄了鹏哥的,我给原图发一下。
展示一下break:
换成continue;报错了,但是他还是在坚强的运行;
{
int a=0;
while (a<10)
{
if (a==6)
{
continue;
}
a++;
printf("%d ", a);
}
}
{
int a=1;
while (a<10)
{
if (a==6)
continue;
printf("%d ", a);
a++;
}
return 0;
}
傻掉了,他把全部都给跳过掉了。,我才说,跳又没有加上一个数字,搞得在这里死循环。,哈哈哈,一秒改正。,哈哈哈
{
int a=0;
while (a<10)
{
a++;
if (a==6)
continue;
printf("%d ", a);
}
return 0;
}
纠正完成,哈哈哈哈,快去弄一下试一下。那么简单,都不打算去敲一下试一下。
在循环体内,首先增加
a
的值。
c复制代码
a++;
然后检查
a
是否等于6。
if (a==6)
如果
a
等于6,执行continue
语句。continue
语句会跳过本次循环迭代中continue
后面的所有语句,直接开始下一次循环迭代。因此,当a
等于6时,printf
语句不会被执行。
continue;
printf
语句用于打印a
的值,但它被错误地缩进了,实际上它并不在if
语句块内。这意味着不管a
是否等于6,它都会尝试执行printf
(除了当a
等于6且continue
被执行时)。然而,由于continue
的存在,当a
等于6时,printf
实际上不会被执行。
printf("%d ", a);
当
a
不再小于10时,while
循环结束。最后,函数返回0,表示程序正常结束。
return 0;
需要注意的是,虽然
printf
语句的缩进似乎表明它属于if
语句块,但实际上它并不属于。在C语言中,语句块的边界是由花括号{}
定义的,而不是缩进。因此,printf
语句实际上是在if
语句块之外。程序的输出将是:
1 2 3 4 5 7 8 9 10