c语言语法(41-) 10.8

一.如何用break和continue来控制循环

1.素数:

2.判断素数代码:其中的break可以结束循环,(即当判断到isprime=0时,不管i是否<x不会再继续for循环

3.补:若将break变为continue,则不会执行循环内接下来的语句,而是直接进入新一轮循环

 4.总结:

二.嵌套的循环

1.1-100的素数代码:

补:嵌套小方法:把所需要嵌套的内容选中,然后点tab即可

2.若输入前50个素数,则用for循环不适用(for适用于具体的范围或次数),此时应用while:

 此时要定义一个变量cnt用来计数,打印完x后要count++(if里面),同时要x++(while里面)

三.从嵌套的循环中跳出:break只能跳出其所在的循环

1.凑硬币

题目:

代码:

注意:我们知道break只能跳出它所在的循环,若想此代码只输出一种凑的结果,就都要用break,但是如果只是单纯的break就会导致前三个for直接退出循环,所以要用if配合条件break

法二:goto来结束

总结:goto特别适用于循环嵌套要跳到最外面去

四.求前n项和

1.题目:

代码:用for是因为范围确定(1开始n结束)

 题目的变形:

代码:需要定义一个变量sign = 1,然后第一次等于1,第二次循环就是-1,.......

五.整数分解

1.0补充题目(逆序输出空格,且最后一个数后面无空格)

解释:x%10表示得到最右边那位,然后打印出那位;x/=10表示去掉最右边那位保留前面的,然后继续do...while循环就可以得到逆序的空格输出。然后若想最后一个数后面无空格,则加一个if(x>9),输出空格。

为什么是x>9呢,循环结束的条件是9是因为最后一个数肯定是一个数,是<10的数,则最后一个数不加空格就是>=10的,即>9

1.题目

思路:

代码:

理解:while那段是为了使mask的值根据输入的值而生成对应的mask(eg若输入三位数,mask为100......)  条件t>9是循环结束的时候,t/=10是去掉最右边的那一位,mask*=10是每一次循环mask都*10     然后把x mask输出方便后续运用

while上面的t = x是为了使t代替x先执行while使其x不会被消耗掉,后面再用x执行do...while

do...while里面的    先d=x/mask取出第一次最左边的那一位,然后循环依次打印出后面的位数,然后打印出来;if起到打印空格的作用且最后一个数字不空;mask%=mask是取出x除最左边的那位右边的数,mask/=10是递减mask的值(eg.1000变为100);当mask<=0循环结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值