循环与 分支 草稿

Else语句的悬空问题,else总和距离最近的if语句匹配

高质量编程

为了避免if 语句有时候写错只有一个=号,可以把变量放在右侧,因为赋值表达式不支持常量在左边,编译器会报错来提醒你

关系符不能连用,如果是关系符连用应该是这样算(18 <= x <=40)

如果x=10,先算18<=x,为假,在置为0,再算0《=40.结果为真,代码可以成功编译逻辑可能是错 的

条件操作符(三目操作符):E1 ?2 E : E3

1为真则将2作为整个表达式结果,为假则3为结果

例题求取最大值,a > b? a’ : b

逗号表达式,从左到右依次计算,最后一个表达式的值是整个表达式的值

感叹号加变量可以起到取反效果,如果a = 0 !a = 1,a = N,!a = 0;

所谓算法其实就是思维

闰年要求:能被4整除不能被100整除的是润年

能被400整除的是闰年

短路求值:只要左边表达式能确定表达式结果,则不计算右边表达式!!!!注意,此处易错。A++&&b++&&c++则当A=0了,发生短路,后面的B,C并不会产生++操作

30000行代码可以找到一份月薪15000的工作,那么一行代码就值五毛钱

Swicth循环基本用法

Switch(E)

{     

       Case 1 :

              Statement1

              Break;

             

       Default:statement

}

注意case和匹配数之间要用空格隔开,否则会被认为是未被引用的标识符。Swictth的基本原理是通过表达式的结果在case语句中寻找可以匹配的入口,此时需要break来跳出循环,否则会一直按顺序向下运行输出所有结果

注意:swicth后面必须接整形表达式,case 后面必须接常量;不能有float,double,case 后不能有变量,最多是常量表达式。

字符是在内存中存储是整形,则switch语句可以用字符

注意:default和case 之间没有顺序要求

While 循环逆序打印把N作为循环判断条件

和正序打印,1到100间三倍数的和

一个循环的知识主要包括初始化,调整,判断。一般顺序是初始化,判断,执行,调整

在C++的自定义类型上++I比i++效率更高,其他场合大差不差

Do while循环:先执行完之后再判断,而while是判断再执行,所以dowhile至少执行一次

注意调整语句和执行语句的顺序,一旦颠倒,可能影响结果,一般调整语句放置在语句模块末尾

注意语句break和continue。Continue语句可能会造成死循环,因为其会跳过调整语句, ,此时只需把调整语句放置在continue语句前即可,但是要小心可能会造成表达效果缺失,是否有导致死循环就看调整语句在哪

找出素数的算法

Goto语句容易死循环形式

Goto 标志词;

标志词:

跳转到标志词的地方

猜数字游戏

随机生成数字

Rand()范围在0-rand_max32767#include <stdlib.h>

所谓rand函数是伪随机,根据种子这一基准值默认生成一组序列,所以不改变种子的话每次生成的值会相同,这是伪随机。所以想让rand更加随机则需要改变种子

为了改变rand函数的种子或者说基准值,我们需要使用到设置rand函数种子的函数srand

形式为:Srand(种子);种子类型要求为无符号整型

我们想·让种子作为一个随机数,那么我们借用time函数,头文件为<time,h>

当函数参数为空指针时,返回time_t类型数据可能是32未也可能是64位,所以使用时建议使用强制类型转换,函数返回一个时间戳代表从1970到现在的时间间隔单位为妙

最后让我们来讨论设置随机数范围,rand()是生成的随机数那么

Rand%a 0-a-1

Rand%a +1 1-a

100-200

100+rand%101

a-b

a + rand%(b-a+1)

设计思路

菜单 ——》游戏——》限制

总结:

其他:Else语句的悬空问题,else总和距离最近的if语句匹配

2.高质量编程

3.为了避免if 语句有时候写错只有一个=号,可以把变量放在右侧,因为赋值表达式不支持常量在左边,编译器会报错来提醒你

4.关系符不能连用,如果是关系符连用应该是这样算(18 <= x <=40)

5.在C++自定义类型上语句i++和++i效率有区别,但是现如今环境大差不差

操作符:

1.三目操作符:

形式为E1 ? E2 :E3

当1为假取3

当1为真取2

2.逗号表达式,形如E1 ,E2 ,E3, E4 ,E5从左到右会一次计算,但是表达式的值为最后一个表达式的计算结果。

3.闰年算法

条件一 能被4整除但是不能被100整除

条件二 能被400整除

4.switch结构

Switch()

{

       Case 1:

       Break;

       Default:

       Break:

}

解析:本质上switch括号里的表达式是选择入口,只能结果只能是整型或者是字符(因为字符在内存中使用整型来存储也算整形一员)case后面只能接整形变量。原理表明,default和case的顺序没有要求,但是如果没有break语句,程序在循环中会一直向下循环
 

循环:

1.循环条件一般包括初始化,判断,语句,调整

2.关于goto语句

形式为

Goto E;

E:

一般用于跳出多重循环。重复使用容易造成代码混乱;

3.关于continue语句,本意为跳过当前循环,但是使用不当容易造成死循环,应注意把调整语句放在continue语句之前

4.寻找素数算法:双重循环嵌套即可

5.逆序输出,顺序输出算法:

逆序输出需要取模,在除以10

顺序输出需要多定义变量,先找到最高位数,再取模,再除以10

猜数字游戏:

1.rand()函数头文件#include <stdlib.h>

默认默认种子为1,产生一组固定随机数。

2.srand()括号内用于改变种子

3.time()当括号内是空指针时返回一个时间戳,其意义是现在到1970的秒数差值,但还是需要强制类型转换为无符号整数

4.rand()的范围问题:a +r()%(b+1)

范围是a – a+b

比特作业:
1. int i = 0;

for (i = 0; i < 10; i++)

{

       if (i = 5)

              printf("%d ", i);

}死循环打印5原因

原因出在if语句的赋值运算符,它使得if语句恒为真,而且一直把5赋值给i,无法跳出循环

2.比较三个数的最佳算法

3. B.if语句中0表示假,1表示真

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值