c/c++:顺序结构,if else分支语句,do while循环语句,switch case break语句

c/c++:顺序结构,if else分支语句,do while循环语句,switch case break语句

2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,此时学会c++的话,
我所知道的周边的会c++的同学,可手握10多个offer,随心所欲,而找啥算法岗的,基本gg
提示:系列c++学习的基础和高阶知识,用于公司生产实践中,实实在在的公司部署产品要用的,因为c++速度快,
而java和Python速度慢,自然往硬件里面部署算法啥的,都得用c++或者c,因此本科学的c很重要,后来的Python或者java就没有那么重要了,
c/c++系列文章:
【1】c++:c语言优缺点,visual studio2019如何新建项目,写hello world程序
【2】c/c++:gcc安装,gcc编译hello world文件,system函数调用系统命令,sleep函数
【3】linux下gcc的编译过程和功能,预处理,编译,汇编,链接,.c预处理为.i文件.s文件.o文件.exe文件
【4】c/c++:windows平台下依赖的动态库,c底层是汇编语言,程序断点调试,反汇编,vs快捷键
【5】c/c++:数据类型,常量变量,标识符,有符号整型,无符号unsigned,字符类型,字符串类型,实数类型,浮点型,科学计数法
【6】c/c++:2进制、8进制、10进制、16进制和进制之间的转换,c语言输出匹配格式%
【7】c/c++:原码,反码,补码和常见的数据类型取值范围,溢出
【8】c/c++:类型限定符,printf输出格式,putchar,scanf,getchar
【9】c/c++:算术运算符,赋值运算,逻辑运算,比较运算,三目运算,逗号运算,数据类型转换


c/c++:顺序结构

任何编程语言都是这仨情况
在这里插入图片描述

选择结构,分支语句

条件分支

在这里插入图片描述
在这里插入图片描述
如果是真,那if中间的语句会执行
否则不执行if下面的语句

在这里插入图片描述

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

//很多库后续调用各种函数都需要用的

void f21(void)
{
	int a = 10;
	scanf("%d", &a);//或者自己确定

	if (a > 0)
	{
		printf("%d\n", a);
	}
	else
	{
		printf("a<0");
	}
}

int main(void)
{
	f21();

	system("pause");
	return 0;
}

在这里插入图片描述
选择结构,分支语句
&a就是取a的地址,scanf把东西读入,放入这个地址

2014年本科那会我第一次学,还不太懂这个玩意是啥意思

后来学了计算机组成原理,微机原理,汇编语言,python,java,c++,等等之后
现在再回来看这个东西,真的很容易

多年经验累计,基本就熟悉了,也懂了程序,编程,实际上就那么回事。

在这里插入图片描述
中途scanf有错的话
在这里插入图片描述
它给出了解决方案了
在这里插入图片描述

三只小猪称体重

在这里插入图片描述

定义仨小猪的体重
接受输入
对比


void f22(void)
{
	//仨小猪称体重
	int pig1, pig2, pig3;
	printf("请输入仨小猪的体重\n");
	scanf("%d%d%d", &pig1, &pig2, &pig3);

	//互相对比--用if else对比
	if (pig1 > pig2) {
		//然后pig1再和pig3对比
		if (pig1 > pig3) printf("pig1最重了\n");
		else printf("pig3最重了\n");
	}
	else
	{
		//pig2>pig1
		if (pig2 > pig3) printf("pig2最重了\n");
		else printf("pig3最重了\n");
	}
	//嵌套分支
}

int main(void)
{
	f22();

	system("pause");
	return 0;
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

switch语句

switch(表达式)
{
case 1:
语句1;
break;
case 2:
语句2;
break;
……
case N:
语句N;
break;
default:
语句别的;
break;
}

在这里插入图片描述
a变量的取值有有限种枚举
就可以搞定这事


void f23(void)
{
	int a;
	printf("请输入你的成绩\n");
	scanf("%d", &a);//或者自己确定
	a /= 10;//相当于搞一个整数

	switch (a)
	{
	case 10:
		printf("牛逼");
		break;
	case 9:
		printf("牛逼");
		break;
	case 8:
		printf("良好");
		break;
	case 7:
		printf("良好");
		break;
	case 6:
		printf("及格");
		break;
	case 5:
		printf("拉胯");
		break;
	case 4:
		printf("拉胯");
		break;
	case 3:
		printf("垃圾");
		break;
	case 2:
		printf("垃圾");
		break;
	case 1:
		printf("废物");
		break;
	default:
		printf("废才");
		break;
	}
}

在这里插入图片描述
case穿透
如果你case后面不加break的话
它会一个个执行下去哦


void f23(void)
{
	int a;
	printf("请输入你的成绩\n");
	scanf("%d", &a);//或者自己确定
	a /= 10;//相当于搞一个整数

	switch (a)
	{
	case 10:
		printf("牛逼");
		//break;
	case 9:
		printf("牛逼");
		//break;
	case 8:
		printf("良好");
		//break;
	case 7:
		printf("良好");
		break;
	case 6:
		printf("及格");
		//break;
	case 5:
		printf("拉胯");
		//break;
	case 4:
		printf("拉胯");
		//break;
	case 3:
		printf("垃圾");
		//break;
	case 2:
		printf("垃圾");
		//break;
	case 1:
		printf("废物");
		//break;
	default:
		printf("废才");
		break;
	}
}

int main(void)
{
	f23();

	system("pause");
	return 0;
}

在这里插入图片描述
所以case中的break必须要写
否则它就会穿透所有语句哦

if是匹配一个范围【模糊匹配】
case是匹配确定值【精确匹配】

while循环语句

在这里插入图片描述
直到判断条件失败,跳出循环
在这里插入图片描述
每次你都输入不同的数
如果数超过10,可以继续输入
但是当数不超过10,就跳出循环了


void f24(void)
{
	//打印1--100,逢7与7的倍数,敲桌子
	int a = 1;
	while (a <= 100)
	{
		if (a == 7 || a % 7 == 0) printf("敲桌子\n");
		else printf("%d\n", a);
		a++;//每次都要变
	}
}

在这里插入图片描述
如果个位也有7,十位也有7也要干掉
那就是数字a直接模10取余,拿到个位数字
数字a/10直接模10取余,拿到十位数字


void f24(void)
{
	//打印1--100,逢7与7的倍数,敲桌子
	int a = 1;
	while (a <= 100)
	{
		if (a % 10== 7 || a /10 % 10 == 7) printf("敲桌子\n");
		else printf("%d\n", a);
		a++;//每次都要变
	}
}

int main(void)
{
	f24();

	system("pause");
	return 0;
}

在这里插入图片描述

do
{
循环体
}while(表达式);
先执行一次循环体,再判断条件。
在这里插入图片描述
在这里插入图片描述
先让a++
再打印2
然后判断是否小于10
继续完


void f25(void)
{
	int a = 1;
	do
	{
		a++;
		printf("%d\n", a);
	} while (a < 10);
}

int main(void)
{
	f25();

	system("pause");
	return 0;
}

在这里插入图片描述

水仙花数

三位数x
每个位上的数的立方和,为本数字x

abc=x
a的立方+b的立方+c的立方=x

反正你要把三个位上的数求出来,就要用除法和取模运算了


void f26(void)
{
	//水仙花数
	int x=100;//至少3位,最大999
	do
	{//一定会来一次
		int a = x % 10;//个位数
		int b = x /10 % 10;//十位数
		int c = x /100 % 10;//百位数300/100=3%10=3
		if (a * a * a + b * b * b + c * c * c == x) printf("%d\n", x);
		x++;//每次x递增
	} while (x < 1000);

}

int main(void)
{
	f26();

	system("pause");
	return 0;
}

在这里插入图片描述


总结

提示:重要经验:

1)
2)学好c++,即使经济寒冬,手握10个大厂offer绝对不是问题!
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰露可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值