精华内容
下载资源
问答
  • 一、概述 循环:就是在满足一定条件的时候,...二、用goto语句构成的循环。 #include <stdio.h> int main() { int i=1; L1:printf("%d,",i); i=i+1; goto L1; return 0; } 程序中反复执行的部分就称为循环体 这

    一、概述

    循环:就是在满足一定条件的时候,反复执行某个程序段的过程
    比如输出100000行
    hello,worrld!
    就算你粘贴复制一次需要一秒
    也是100000秒
    就算你不停止工作
    也需要27.78小时
    But采用循环结构只需要两行主体代码就OK
    一般来说有四种实现方式

    1. while语句
    2. for语句
    3. do-while语句
    4. goto语句

    二、用goto语句构成的循环。

    #include <stdio.h>
    int main()
    {
    int i=1;
    L1:printf("%d,",i);
    i=i+1;
    goto L1;
    return 0;
    }
    

    程序中反复执行的部分就称为循环体
    这里就是

    L1:printf("%d,",i);
    i=i+1;
    goto L1;
    

    这是一个无条件的循环,因此它是一个无限循环,或”
    者称为‘死循环”。因为没有给她设置停止的指令。
    可以通过if进行限定循环条件

    用goto语句和if语句构成的循环。

    #include <stdio. h>
    int main(void)
    {
    int i=1;
    L1:if(i<=5)	
    //这里限定了循环次数
    //在if子句中通过i这个变量
    //来实现了循环次数的计算,
    //我们一般称其为计数器
    {
    	printf("%d,",i);
    	i=i+1;
    	goto L1;
    }
    return 0;
    }
    

    这种利用goto语句构成的循环不多

    三、while循环:while语句构成的循环

    while语句的格式:
    while(表达式)← 循环条件
    单条语句←循环体
    循环条件:
    关系表达式或逻辑表达式。
    循环体:
    只能是单条语句,若需要多条语句,须用
    花括号括起来,构成一条复合语句。
    结构大概就是下面的图,只要是真的话,就直接的回到判断条件然后进行循环直到为假,为假然后就直接退出循环了。
    在这里插入图片描述

    例1. while循环示例。

    #include <stdio.h>
    int main()
    {
    int i=1;
    while(i<=5)
    {
    	printf("%d,",i);
    	i=i+1;
    }
    return 0;
    }
    

    四、编程序计算:1+2+3+…+100之和。

    思路:

    1. 首先定义变量sum用于存储累加和,并将sum初始化为0;
      这个不初始化的话,可能会有随机数的误差
      2.将1累加到sum中,即sum=sum+1;(此时sum的值为1)
      3.将2累加到sum中,即sum=sum+2;(此时sum的值为1+2之和)



      101.将100累加到sum中,即sum=sum+100;
      (此时sum的值为1+2+3+…+100之和)

    写100条???
    不可能的
    这辈子不可能的

    sum=0;
    i=1;
    while(i<=100)
    { 
    sum=sum+i;
    i=i+1;
    }
    

    编写程序计算n的阶乘,其中n是一个非负整数。
    编程思路:
    定义变量f用来存储累乘的积,并且给f赋初值为1。==初值1 ==
    依次将1到n累乘到变量f中。
    f=f1;
    f=f
    2;… f=f*n;
    这n条语句可以归纳为一-个循环。

    while(i<=n)
    {
    f=f*i;
    i=i+1;
    }
    

    总结一下:累加初值就是0,累乘初值就是1
    数据溢出:
    运算结果超出了变量的取值范围
    在程序中应当根据运算结果的大小,选择合适的数据类型,从而避免产生溢出。
    比如说你往int类型变量里面存1000000000试一下

    五、自增运算符、自减运算符,以及复合赋值运算符。

    1. 重点:自增运算符++,功能是使得某个变量的值加1,分为前自增和后自增两种。前自增++i这种;后自增i++这种。跟i=i+1一个意思,就是少打几个符号,省点力气
    2. 自减运算符功能是使得某个变量的值减1,分为前自减和后自减两种。前自减–i,后自减i–
    3. 前后自增就是计算还是引用的顺序问题。++i很明显,先进行++,然后再进行引用赋值
    i=3;
    j=++i;
    那么j的值是4,i的值也是4。
    j=++i相当于j=(i=i+1)
    
    
    反之
    后自增表达式i++的值
    是i加1之前的值
    可以称之为先引用后加1
    若有i=3;j=i++;
    那么j的值是3,i的值是4。
    j=i++相当于j=(i=i)+1
    
    1. 一堆闲杂资料
      自增运算符++
      其基本功能是使得某个变量的值加1;又分为前自增和后自增两种。
      前自增表达式的一般
      形式为:
      ++变量、例如++i
      后自增表达式的一般形式为:
      变量++、例如i++
      从基本功能上来说,自增表达式i++和++i;与赋值表达式i=i+1都是相同的。
      自减运算符–
      其基本功能是使得某个变量的值减1;又分为前自减和后自减两种。
      前自减表达式的一般形式为:
      –变量、例如–i
      后自减表达式的一般形式为:
      变量–、例如i–
      从基本功能上来说,自减表达式i–和--i, 与赋值表达式i=i-1都是相同的。
      前自增(减)表达式与后自增(减)表达式单独使用时,是没有区别的;
      只有作为另一个表达式的一部分时,才有区别。
      例如:
      语句i++;和语句++i;是完全等价的。
      表达式j=i++与表达式j=++i则是完全不同的。(自增自减这个时候就作为赋值表达式的一部分了)
      前自增表达式++i的值,是i加1之后的值。可以称之为先加1后引用。
      例如,若有i=3;j= ++i;,那么j的值是4,i的值也是4。
      可见,j=++i相当于j=(i=i+1)。再如,若有i= 3;printf("%d\n",++i);,则结果是4。
      后自增表达式i++的值,是i加1之前的值。可以称之为先引用后加1。
      例如,若有i=3;j=i++;,那么j的值是3,i的值是4。
      可见,j=i++相当于i=(i=i)+1。
      再如,若有i=3: printf("%d\n" ,i++);,则结果是3。

    2. 注意事项(优先级)
      优先级:后自增>取负
      例如,若有i=3;printf("%d\n",-i++);,则结果是-3。
      因为后自增的优先级高于取负运算符,因此-i++等价于-(i++)。
      先进行的是引用,因为是后自增,所以是个3,但这个时候i其实本身是4。对3取负就是-3.
      多绕一下吧

    3. 复合赋值运算符:就是将算术运算符或者位运算符,与赋值运算符
      相结合,而构成的一类运算符

    包括
    +=
    -=
    *=
    /=
    %=等
    少用这玩意就行了
    别把自己绕晕了
    a+=3
    相当于
    a=a+3
    
    X*=y+8
    相当于
    x=x*(y+8)
    而不是x=x*y+8 
    个人建议少用少用少用
    好处就是提高简洁性
    但是降低了可读性
    如果你看着都得反应一会
    读程序本来就不高
    就别给自己挖坑了
    别再题目都搞错了
    
    展开全文
  • 苏教版高三数学复习课件10.1...1算法的“三基”:算法的基本思想,算法的基本结构,算法的基本语句 其中算法的基本思想与基本结构是高考考查的重点 2三种基本结构:顺序结构,选择结构,循环结构前两种结构很容易...

    苏教版高三数学复习课件10.1算法的含义、流程图.ppt

    了解算法的含义和算法的基本思想/了解流程图中的三种基本的算法结构:顺序结构、选择结构和循环结构,并能解决相关的简单问题,第十知识块 算法初步 第1课时 算法的含义、流程图,1算法的“三基”:算法的基本思想,算法的基本结构,算法的基本语句 其中算法的基本思想与基本结构是高考考查的重点 2三种基本结构:顺序结构,选择结构,循环结构前两种结构很容易理解, 循环结构稍微有点难,但在高考中经常涉及 3三种语言:自然语言,流程图语言,基本算法语句 4框图:以小题出现,对于复杂算法常以填空题的形式进行考查,【命题预测】,1认真审题、准确理解题意、做好算法分析是算法设计的基础;算法描述要坚持科学性(有限、可行)和简约性原则,力求体现普适性的优势设计流程图要注意:(1)遵循共同的规则:使用标准流程图符号;画图方向一般是由上而下,从左往右;流程图符号内的语言要简练清楚;有开始框和结束框(2)做好结构的选择,如,若求只含有一个关系式的解析式的函数值时,只用顺序流程图就能解决;若是分段函数或执行时需要先判断才能执行的,就必须引入选择结构;若问题的运算涉及了许多重复的步骤,就可考虑引入变量,应使用循环结构,【应试对策】,2使用选择结构时要注意:(1)判断条件的确定;(2)由于判断框只有两个分支, 当判断的结果不止两种情况时,可采取选择结构内嵌入选择结构的办法实现算法要求 3循环结构的循环控制:通过累加变量记录循环次数,通过判断框决定循环终 止与否用循环结构来描述算法,在画出算法程序框图之前,需要确定的三件事是:(1)确定循环变量与初始条件;(2)确定循环体;(3)确定终止条件注意区别直到型循环与当型循环:直到型循环是“先循环,后判断,条件满足时终止循环”,而当型循环则是“先判断,后循环,条件满足时执行循环”,两者的判断框内的条件表述在解决同一问题时恰好相反,4流程图主要分程序图与结构图其中程序图描述动态的过程,结构图刻画系 统结构程序图只有一个“起点”,一个或多个终点,而结构图大多表示为树形结构绘制程序图时可以按以下步骤:(1)将实际问题的过程划分为若干个步骤; (2)理清各步骤间的关系;(3)用简洁的语言表述各步骤;(4)绘制程序图,并检查是否符合实际问题,算法的设计 算法是做一件事情的方法和步骤,在生活中做一件事情的方法和步骤有多种, 我们设计的算法应本着简捷方便的原则要正确地设计一个算法就需要掌握算 法的五个特性:(1)有穷性:算法中执行的步骤总是有限的,不能无休止地执行 下去;(2)确定性:算法中的每一步操作的内容和顺序必须含义确切,不能有二 义性;(3)可行性:算法中的每一步操作都必须是可执行的,也就是说算法中的 每一步都能通过手工和机器在有限的时间内完成,这称之为有效性;(4)输入: 一个算法中有零个或多个输入,这些输入数据应在算法操作前提供;(5)输出: 一个算法中有一个或多个输出算法的目的是用来解决一个给定的问题, 因此,它应向人们提供想要产生的结果,否则,就没有意义了,【知识拓展】,例如:喝一杯茶需要这样几个步骤:洗刷水壶、烧水、洗刷茶具、沏茶 问:如何安排这几个步骤?并给出两种算法,再加以比较 解析:算法一: S1 洗刷水壶S2烧水S3洗刷茶具S4沏茶 算法二: S1洗刷水壶S2烧水,烧水的过程当中洗刷茶具S3沏茶 上面的两种算法都符合题意,但是算法二运用了统筹方法的原理,因此这个算 法要比算法一更科学,1算法 对一类问题的机械的、统一的求解方法称为 2流程图 流程图是由一些 和流程线组成的,其中图框表示各种操作的类型, 图框中的文字和符号表示操作的内容,流程线表示操作的先后次序 3顺序结构 依次进行多个处理的结构称为 结构,算法,图框,顺序,4选择结构 先根据条件作出判断,再决定执行哪一种操作的结构称为 结构(或称为“分支结构”) 5循环结构 (1)循环结构的定义 需要重复执行同一操作的结构称为 结构,选择,循环,(2)当型循环 先判断所给条件p是否成立,若p成立,则执行A,再判断条件p是否成立;若p仍成立,则又执行A,如此反复,直到某一次条件p不成立时为止这样的循环结构 称为 循环 (3)直到型循环 先执行A,再判断所给条件p是否成立,若p不成立,则再执行A,如此反复,直到p成立,该循环过程结束,当型,1(南通市高三调研)按如图所示的程序框图运行后,输出的结果是63,则判断框中整数M的值是________ 解析:本题可以构造数列 , 项数n对应算法中的计数变量A,通项an对应 算法中的存储变量S.通过观察计算可得M5. 答案:5,2(2010江苏通州市高三素质检测)某算法的程序框图如右图所示,则输出量y与输入量x满足的关系式是________ 答案:y,3下列流程图是循环结构的是________ 答案:,4给出以下四个问题: 输入一个数x,输出它的相反数;求面积为6的正方形的周长;求三个数a,b,c中的最大数;求函数f(x)的函数值 其中不需要用条件语句来描述其算法的有________(写出所有符合要求的命题的序号) 答案:,5(苏州市高三教学调研)如图,程序执行后输出的结果为________ 解析:由框图知该算法的功能为求13515的值,所以输出结果为64. 答案:64,1写算法或找到了某种算法是指使用一系列运算规则能在有限个步骤之内求解 某类问题,其中的每条规则必须是明确的、可执行的 2算法从初始步骤开始,每一个步骤只能有唯一的后继步骤,从而组成一个步 骤序列,序列的终止表示问题得到解决或指出问题不可解决,【例1】 已知点P(x0,y0)和直线l:AxByC0,求点P(x0,y0)到直线l的距离d,写出其算法 思路点拨:利用点到直线的距离公式可写出算法,而流程图利用顺序结构比较简单 解:算法如下: S1 输入点的坐标(x0,y0)及直线方程的系数A,B,C. S2 计算Z1Ax0By0C. S3 计算Z2A2B2. S4 计算d . S5 输出d.,变式1:写出求经过点M(2,1),N(2,3)的直线与两坐标轴围成的三角形面积的一个算法 解:算法步骤如下: S1 取x12,y11,x22,y23; S2 得直线方程yx1; S3 在第二步的方程中,由x0,得y的值m,从而得直线与y轴的交点B(0,m);,S4 在第二步的方程中,由y0,得x的值为n,从而得直线与x轴的交点A(n,0); S5 根据三角形的面积公式求S |m|n|;S6输出S.,1为了将写好的算法清晰直观地描述出来,通常采用画流程图的方法来表示 2流程图中的图框及功能见下表:,【例2】 画出解不等式axb0(b0)的流程图 思路点拨:要设计本题的流程图,应该首先用自然语言描述出其基本步 骤,然后选择合适的程序结构. 解:解不等式,首先要对a进行判断,所以,需要使用条件结构,先判断 a是否大于0,若a0,则需判断b是否大于0,进而可解方程由以上分 析可得流程图如图所示,变式2:(江苏省高考命题研究专家原创卷)在右面的程序框图中,若输入的m77、n33,则输出的n值为________ 解析:这个过程是7723311,33311,故所求的最大公约数是11. 答案:11,1顺序结构是最简单的算法结构,语句与语句之间、框与框之间是按从上到下 顺序进行的程序框图中一定包含顺序结构 2解决分段函数的求值问题时,一般采用条件结构设计算法利用条件结 构解决算法问题时,要引入判断框,要根据题目的要求引入一个或多个判断 框而判断框内的条件不同,对应的下一图框中的内容和操作要相应地进行变化,故要逐个分析判断框内的条件,【例3】 已知函数y ,写出求该函数的函数值的算法并画出流程图 思路点拨: 解:算法如下: 第一步:输入x; 第二步:如果x0,那么使y2x3,否则yx22; 第三步:输出y. 流程图如右图:,变式3:(江苏省高考命题研究专家原创卷)如图所示的一个流程图表示一个不等式的求解过程,请你写出一个符合题意的不等式________,解析:从流程图可知,它表示一元二次不等式x2(a1)xa0的解集 答案:x2(a1)xa0,在一些算法中,经常会出现从某处开始,按照一定的条件,反复执行某一处理步骤的情况,这就是循环结构,反复执行的处理步骤称为循环体显然,循环结构中有关于条件的判断,因此,循环结构中必包含条件结构常见的循环结构:(1)在执行了一次循环体后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环,这种循环结构称为直到型循环,如图甲所示(2)在每次执行循环体前都要对控制循环条件进行判断,当条件满足时执行循环体,否则终止循环,这种循环叫做当型循环,如图乙所示,【例4】 设计一个计算13599的算法,画出流程图即可 思路点拨:选择一个计数变量一个累积变量,采用当型循环或直到型 循环 解:解法一:当型循环流程图如下: 解法二:直到型循环流程图如下:,变式4:(2009南京调研)阅读如图的流程图若输入a6,b1,则输出的结果是________,解析:当输入a6,b1时,x52,再次进入循环得a4, b6,此时x2, 退出循环,故输出的结果为2. 答案:2,1要掌握一些常用算法的设计方法,重点掌握分段函数求值、求和(积)、 求几个数的最大(小)值等,其次对质数判定、二分法也要弄清楚通过类比常用算法,可设计出其他较复杂的算法 2画流程图时应注意的问题: (1)不要混淆处理框和输入框 处理框用于对变量赋初值和计算,所赋的初值是能预知的,例如和的初值一般为0,积的初值一般为1;输入框主要是对那些值不确定的变量进行输入,例如计算函数值的框图中变量X的值,只有在程序运行后才能确定其值,【规律方法总结】,(2)注意区分条件结构和循环结构 二者都有判断框,但二者功能差别很大条件结构主要用在需要进行判断的算法中,其中的语句最多执行1次;循环结构主要用在一些有规律的重复计算中,其显著特点是能重复执行,其中的语句(循环体)可能被执行0次、1次或多次(但不能是无数次) (3)注意区分当型循环和直到型循环 先判断条件,当条件满足时执行循环体,条件不满足时退出循环的是当型循环;先执行一次循环体,再判断条件,当条件不满足时执行循环体,条件满足时退出循环的是直到型循环当型循环的循环体可能一次也不执行,直到型循环的循环体则至少执行一次,(4)循环结构中要注意设计合理的计数变量以控制循环的次数计数变量既可以是已有的变量,也可以单独设置,但能利用已有变量时就不要单独设置 (5)要注意各个框的顺序有时连续的几个框变换次序对结果没有影响,有时则影响很大,特别是在循环体内的语句,这点要特别注意.,【例5】 (2009江苏卷)如图所示是一个算法的流程图,最后输出的W________.,【高考真题】,分析:仔细阅读流程图,可知其循环结构表示 S(2n1)2(2n3)2(2n5)2(2n7)2(1)n11. 再由判断框,知当S10时,结束程序,输出数据WST. 规范解答:第一次运算:S1201,判断S10,则执行 WST17522,则输出W22.故填22. 答案:22,有关数列的求和计算问题是一类典型的算法问题,苏教版必修2的P14课堂练习1就是与本题相似之题 本题流程图为直到型循环流程图,即先执行再判断,若所给条件不成立,则反复执行,只有当所给条件成立时,结束循环过程与此类似的还有当型循环流程图,即先判断再执行,若所给条件成立,则反复执行,只有当所给条件不成立时,结束循环过程,【全解密】,【课本探源】,【知识链接】,在本题解答过程中,当T5时,算式S已满足条件S10,从而在答题时,或许直接填写W17,或许填写W5,这些都是因为没有完整地阅读题目,错误地将17或5看做W了,我们必须耐心地阅读流程图,认清所求问题 对于本题所求之和S,可利用分类讨论的思想求之: 若n为偶数,则S(2n1)2(2n3)2(2n5)2(2n7)2 (1)n112(4n4)2(4n12)242n2; 若n为奇数,则S(2n1)2(2n3)2(2n5)2(2n7)2(1)n112(4n4)2(4n12)2812n21.,【阅卷报告】,【发散类比】,循环结构问题的求解 解决有关循环结构的问题,包括当型循环结构与直到型循环结构问题,首先,要区分两种循环结构,搞清它们的特征,即当型循环结构是先判断条件成立再来执行循环体,当成立时执行循环,不成立时退出循环,而直到型 循环结构是先执行一次循环体再来判断条件,当不成立时执行循环,成立时退出循环;其次,要确定计数变量及其他变量;第三,要掌握循环结构的实际应用它们常常运用于一些有规律的科学计算,如累加求和、累乘求积、多次输入等.,【技巧点拨】,1一位商人有9枚银元,其中有1枚略轻的是假银元,你能用天平(无砝码)将假 银元找出来吗?写出解决这一问题的一种算法 分析:先用自然语言描述算法是解决问题的关键 解:第一步,把9枚银元平均分成3组,每组3枚 第二步,先将其中2组放在天平的两边,如果天平不平衡,则假银元就在轻 的一组;如果天平左右平衡,则假银元就在未称量的那一组 第三步,取出含假银元的一组,从中任取2枚放在天平的两边,如果天平不平衡,则轻的那枚就是假银元;如果天平左右平衡,则未称量的那枚就是假银元,2如图,说明图中的几个基本的程序框和它们各自表示的功能,并把它填在相应的括号内,分析:识别各符号的含义及各种结构形式是解题的突破口 解:如图所示

    展开全文
  • 循环

    2018-10-22 09:15:57
    而且对于数量的累加累乘计算,我们也无法通过逐一定义变量和逐一相加的方式进行计算,所以我们便需要通过循环来达到我们的目的。 循环有哪些 1.for循环 for循环是我们在变成过程中最常用到的变量。其格式如下: ...

    循环的作用

    在编程过程中,我们经常会写很多重复或者极度相似的代码。这种代码的编写会极大的增加我们的编程量。而且对于数量的累加累乘计算,我们也无法通过逐一定义变量和逐一相加的方式进行计算,所以我们便需要通过循环来达到我们的目的。

    循环有哪些

    1.for循环

    for循环是我们在变成过程中最常用到的变量。其格式如下:

    for(int i = 0;i<a;i++){

        代码执行语句; 

    }

    在for循环格式中,定义的变量 i 为局部变量,只在for循环中有用。但是不可以和之前的其他变量重名,i<a代表循环的条件,只要条件满足,即会执行代码,i++代表每次语句执行之后,会将i+1,以便进行下次循环(如果满足条件)这个地方也可以换成其他条件,例如i =i+ 2 。在for循环中,我们可以再定义一个新的for循环(新定义的for循环变量不可以和外层的重名),也可以和判断语句结合使用。for循环进行累加代码如下

    int sum = 0;

    for(int i = o;i<10;i++){

    sum = sum+i;;

    }

    2.while循环

    while循环是for循环的一个变种,将for循环的定义变量过程提前,将自增过程写到for循环中进行自增,便行程了while循环,基本用法与for循环类似,其格式如下。

    int i = 0;

    int sum = 0;

    while(i<5){

    sum = sum+1;

    i++

    }

    3.do while循环

    do while循环与while循环最大的区别就是在循环语句的执行上,while语句先判断条件,满足条件再执行判断语句,若不满足,则不执行。而do while循环则是先执行一次循环语句后,再进行条件判断。也就是说while的执行语句最少执行0次,而do while语句则最少执行1次(于其结构有关,代码的执行是从上到下,从左到右,赋值除外)。其格式如下:

    do{

    执行语句

    }while(循环条件);

    注意:while后的循环条件后面需接;

    4.递归

    递归是循环的一种循环方式,其原理是调用方法自身,来达到循环的目的。例子如下:

    斐波那契数列的递归写法

    public int  f1(int a) {
            int b;
            
            if (a<=2) {
                return (a - 1);
            }else {
                b =  f1(a-1)+f1(a-2);
            }
            return b;
        }

        public static void main(String[] args) {
            // TODO 自动生成的方法存根
            digui dg = new digui();
            int a =  dg.f1(6);
            System.out.println(a);
        }

     

     

     

    展开全文
  • 循环语句分为三组基本类型 while型循环,do–while型循环,for型循环 三者各有长处与劣势,在编写代码时应择优使用,灵活运用。 ⑵应用 循环语句一般用于解决具有一定循环规律操作的问题, 比如累加,累乘,或是...

    c++循环结构总结

     

    一、什么是循环结构

    ⑴分类

    循环语句分为三组基本类型
    while型循环,do–while型循环,for型循环
    三者各有长处与劣势,在编写代码时应择优使用,灵活运用。

    ⑵应用

    循环语句一般用于解决具有一定循环规律操作的问题,

    比如累加,累乘,或是为有规律的输出、读入问题。

     

    二、while语句

     

    ⑴定义

    1.工作原理:

    首先判断条件表达式的值,如果它是真的,则循环体中的每个语句都被执行。

    然后,再次测试条件,如果条件表达式仍然为 true,则循环体中的每个语句将再次被执行。

    如此循环往复,直到条件表达式被判断为 false。

     

    2.使用范围:

    相对于for循环语句,while语句的使用范围则狭窄的多,

    只能适用于已知循环条件的循环语句。

    所以一般来说我个人倾向于在多次输入的情况下使用while型循环。

     

    ⑵格式

    while(表达式)
    {
      
      // 语句;
    
    }

    例如:

    while(i>0)
    {
         i - - ;
         x = i % 8 ;
         if(x == 1) y++;
     }

    ⑶注意事项

    1.while语句先判断再执行

    2.while后面的括号和括号中的表达式都必须有

    3.表达式可以是常量或常量表达式

    4.如果while是个死循环,break可以跳出

     

    ⑷易错点

    ①while的“()”后面不能加“;”

    根据我的试验发现,如果编译器在发现开始语句块的大括号之前看见了第一行末尾的分号,

    那么它会在分号的位置结束循环。

    尤其是它会将分号前面丢失的语句解释为空语句,也就是什么都不做的语句,

    然后将 while 语句和它后面的任何内容断开。

     

    ②不要忘记大括号

    在编写循环语句时,如果有条件执行的语句是一个语句块,

    则不要忘记将所有的语句都包含在一组大括号中。

    如果大括号意外被忽略,则 while 语句有条件执行的仅仅是紧挨着的下一个语句。

     

    ⑸例题

    打印“Hello”字符串 5 次:

    #include <iostream>
    using namespace std;
    int main()
    {
        int count = 1;
        while (count<= 5)
        {
            cout << "Hello ";
            count = count + 1;
        }
        cout << "\nThat's all!\n";
        return 0;
    }

     

    三、do-while语句

     

    ⑴定义

    do-while语句先执行循环体语句,后判断条件。

    表达式为 true时,继续执行循环体

    先执行再判断语句至少执行一次循环体。

     

    ⑵格式

    do{ 
      
        // 语句;
    
    }while (表达式);

    例如:

    do{
          printf(“@”);
          cin>>x ;
          if(x>0) s++;
    }while(i<=10);

    ⑶注意事项

    1.do-while循环是唯一一个判断条件在语句块之后的句型,

    并且无论条件是否成立,都会执行一次循环

    2.do-while语句在绝大多数情况下都能代替while语句

    3.while语句与do-while语句的区别是:

    do-while语句无论条件表达式的值是真是假,循环体都将至少执行一次;

    而若条件表达式的初值为假,则while语句循环体一次也不会执行。

     

    ⑷易错点

    do-while 循环必须在测试表达式的右括号后用分号终止,

    也就是while后面的“()”后要加“;”,也一点需要与while语句区分开

     

    ⑸例题

    判断素数:

    #include <iostream>
    using namespace std;
    int main(void)
    {
      //输入
      long m;
      
      cout << "please input a number:\n";
      cin >> m;
      
      //处理
      for(int i = 2; i < m; i++) //找m的因数
      {
        if(m % i == 0)
        {
          break;
        }
      }
      //输出
      if(m == i) //判断m是否被小于m的数整除
      {
        cout << m << " is prime.\n";
      }
      else
      {
        cout << m << " isn't prime.\n";
      }
        return 0;
    }

     

     

    四、for语句

     

    ⑴定义

    1.概念:

    for循环是最常用也是最常见的一种循环

    由于其特殊的格式,使for循环可以灵活设置循环次数以及循环条件,

    所以for也可以当做while语句或者do-while语句来使用。

    一般的,for常用来设置已知循环次数的循环。

     

    2.运行流程:

    一般来说,for(表达式1;表达式2;表达式3)中,

    表达式1仅在循环开始时执行一次,

    其后执行表达式2进行循环条件的鉴定,成立则执行循环语句块,不成立则退出循环。

    执行完一次循环后,将执行表达式3,进行变量的增减,

    之后再次测试循环条件,成功继续循环。

    第一步:先计算表达式1,一般是个初始值;

    第二步:然后执行表达式2的判断;

    第三步:如果成立,执行语句,然后执行表达式3,再执行第二步;如果第二步不成立,退出循环。

     

    ⑵格式

    for(表达式1;表达式2;表达式3)
    {
      
       // 语句
    
    }

    例如:

    for(int i=1 ; i<=10 ; i++)
    {
             printf(“@”);
    
     }

    int  i = 1 ;
    for(; i<=10 ; i++)
    {
             printf(“@\n”);
    
     }

    int  i = 1;
    for(;i <= 10;)
    {
              printf(“@\n”);
              i++ ;
     
     }printf(“@\n”);

    ⑶注意事项

    1.for 循环允许编写一个执行特定次数的循环的重复控制结构

    2.表达式1:用于初始化变量,变量可以为局部变量也可以是全局变量,局部变量的作用域仅限于在for循环体内。

      表达式2:为判断条件,当条件成立为真时执行循环,否则跳出

      表达式3:一般用于计数,循环后执行

    3.表达式1,2,3可以都为空不填,表示无条件死循环,可以用break跳出循环。

     

    ⑷易错点

    1.for后面的“()”后不加“;”

    2.某个表达式为空时,需要写一个“;”在该表达式处

    3.不要忘记加大括号

     

    补充

    break:可跳出循环,但是只能跳出距离他最近的一层循环,转而执行循环体的下一条语句。

    【只能用于switch和循环语句中】

    continue:跳过当前循环的剩余语句,结束本次循环,执行表达式3,开始下一轮循环。

    【并不从循环体中跳出,除非已处于循环结束点】

     

    ⑸例题

    制作九九乘法口诀表

    #include<iostream>
    #include<cmath>
    int main()
    {
        using namespace std;
        int  i, j;
        for (i = 1; i <= 9; i++) {
            for (j = 1; j <= i; j++)
                cout << i << "*" << j << "=" << i * j << " ";
            cout << endl;
        }
        return 0;
    }

     

     

    五、循环嵌套

     

    ⑴注意

    1.内循环语句运行一整遍,外循环变化一个值

    2.break终止离的最近的循环语句

    3.continue只结束当前一次运行的循环

     

    ⑵例题

    标记变量的运用:

    数字反转

    描述

    给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。

    输入

    输入共 1 行,一个整数N。

    -1,000,000,000 ≤ N≤ 1,000,000,000。

    输出

    输出共 1 行,一个整数,表示反转后的新数。

    样例输入

    样例 #1:

    123

    样例 #2:

    -380

    样例输出

    样例 #1:

    321

    样例 #2:

    -83

    #include<iostream>
    using namespace std;
    int main()
    {
        int N;//输入
        int S=0;//输出新数
        int a=0;//解析出的个位数
        int T=0;//判断是否为负数
        scanf("%d",&N);//输入N
        if(N<0) //判断N是否为负数
        {
            N=0-N; //N先取正
            T=1; //T值为1时,N是负数
        }
        for (int i=0;i<10;i++) 
       {
            int b=N/10; //为解析出N的个位数做准备
            a=N-b*10; //解析出N的个位数为a
            N=N/10;//去掉已解析出来的个位数,N降一位
            S=S+a;//把已解析的a和累加的S赋值给新数
            S=S*10;//新数升一位
            if (N<10)//判断N是否降到个位;
            {
                a=N;
                S=S+a;
                break;
            }
        }
        if(T==1)//判断当T等于1时,S是负数
        {
            S=0-S;
        }
        printf("%d\n",S);
        return 0;
    }

    分析:程序中的T为标记变量,用来标记负数,负数标记为1

     

    六、程序的调试与跟踪

     

    ⑴静态查错

     

    1.变量没有赋值

    2.中间运算结果越界

    如b/(2*a),2*a的结果可能越界,改成b/2/a即可

    3.if-else语句混乱

    if语句可以没有else匹配,else总

    与跟它最近的语句匹配

    4.实数比较出差

    比较两个实数相等,直接用等号往往出差,是浮点运算存在误差造成的,

    解决办法是使用两数差的绝对值与一个相对极小量进行比较

    如if(fabs(x-y)<le-6)

    5.细节错误

    cin>>a>>“  ”>>b不能运行,不可输入空格

    cout<<b<<,<<endl不能运行,应该改为cout<<b<<“,”<<endl

     

    ⑵动态查错

    通过添加输出语句调试程序

    如cout<<x<<" "<<i<<endl;  //用于查看x和i的值

    调试完成后一定要记得把调试语句删除或注解(在这一行最前面加//)

     

    七、题目分析

     

    ⑴犯过的错误:

    1.在do-while语句的while后面忘记加“;”

    2.在循环外使用了循环中定义的变量

     

    ⑵做题中发现的注意点:

    1.在循环语句中,会用到很多的大括号,要注意每个“{”都有一个“}”与之对应,

    为了防止漏加多加括号,最好使对应两个括号在一条直线上,

    多个括号按层次缩进,便于检查,如下:

            {

                   {

                

                     }

              }

      }

     

    2.在if语句中,(表达式1;表达式2;表达式3),

    其中有表达式为空时,可以不写,也可以写个空格,无影响

     

    3.if后循环如果是多条语句一定要加大括号,否则只循环紧跟其后的一条语句

     

    4.循环语句中可以定义变量,但是只能在循环语句中使用,离开循环语句就不存在了

     

    ⑶思路总结:

    1.处理较复杂的题目,要先抽象成简单题目,一定不要先陷入细节的编写,要先从整体入手

     

    2.如果有n个循环,可以先编写一个循环运行,看看输出是否正确,再编写n个循环

     

    3.循环语句中经常使用计数已经,我总结了一下常用的形式,

    格式如下:

    (1)将控制变量从1变到100,增量为1

    for(i=1;i<= 100;i++)

    (2)将控制变量从100变到1,增量为-1

    for(i=100;i>=1;-i)

    (3)控制变量从7变到77,增量为7

    for(i=7;i<=77;i+=7)

    (4)控制变量从20变到2,增量为-2

    for(int i=20;i>=2; i-=2)

    (5)按所示数列改变控制变量值: 99、88、 77、 66、55、 44、33、22、11、0,增量为-11

    for(int j=99;j>=0;j-=11)

    (6)控制变量i和j共同进行循环控制,i从1变到99,j从2变到100,增量均为2。

    for (int i=1,j=2;i<=99&&j<=100; i+=2,j+=2)

    例如:

    ①输出1-100之间所有偶数

    #include <iostream>
    using namespace std;
    int main (){
      for (int i=2; i<=100 ; i+=2)
      cout << i <<“  ”
       return 0;
    }

    ②利用for循环,计算输出2+2+..+100的和

    #include <iostream>
    using namespace std;
    int main ()
    int sum=0;
    for (int i=1; i<=100 ; ++i)
    sum+=i;
    cout << sum;
    return 0;
    }

     

     

    八、心得感悟

    1.随着循环语句的学习,c++程序的难度明显增大,

    题目不再是看一遍就可以编写出来的简单输入输出题目,而是需要在演草纸上列出计算步骤,用c++语句一部分一部分对应。

    这需要我们在做题的过程中明确把握题目的关键信息,思路清楚,解题过程有条理,并熟练掌握c++基本语句与之对应。

     

    2.在开放了openjudge平台后,已经完成了3次作业。

    做题的过程也是查缺补漏过程。

    我总结了想要使编写的程序accept,必不可少的几点:

    ①正确的解题思路与过程,是重中之重

    ②原样输出的关键词,与题目要完全一致

    ③程序不能只是通过样例,还要考虑各种可能性,并一一通过

    ④检查程序是否完整,没有细节错误,防止在粘贴过程中丢失语句和标点符号等

     

    在c++的学习与做题过程中,我由最初接触时的敬畏逐渐变成了喜爱,慢慢感受到了c++的奇妙与乐趣。

    想要体会c++的美好只从课上学习是难以实现的,课下的自学与钻研才是关键。

    希望我可以在c++的路上长风破浪,越走越远。

    展开全文
  • 第二次 循环

    2018-12-09 17:14:58
    一、知识点 三种基本循环语 ...但并不绝对,三种循环语句可互换 注:1.for循环条件中,语句可省,但分号不可省 2.循环体中,累加变量赋初值为0,累乘变量为1 3.嵌套循环,注意调整循环变量之间的关系,可...
  • 循环结构总结

    2019-12-02 09:16:35
    循环结构总结 使用循环结构目的: 应对需要进行规律性的重复运算的相关问题。基本问题:累加,累乘 1.while语句(称为当型循环...3.for语句(若变量初值定义在for语句内部,则只能在循环内部使用 ) 基本格式:fo...
  • 1.本次课学习到的知识点: ...(1)在带有函数的循环程序计算中,循环语句的表达不是很清楚,还有就是编程中的小细节容易遗漏,比如语句后的分号等 (2)解决方法:参考书上例题,多次尝试,理解并熟悉本节课的内容...
  • C语言--用while语句实现N的阶乘

    千次阅读 2020-05-17 22:13:30
    实现N的阶乘 #include<stdio.h> int i=1,n; int answer=1; void main() { scanf("%d",&n);...=n) //此处为进行循环条件 { answer=answer*i; //实现累乘 i++; } printf("%d",answ
  • 这个挺关键,累加就是0,累乘就是1,目的就是为了避免随机数 变量n,存放当前累加项的分母,并赋初值为1。 变量S,控制当前累加项的正负,并赋初值为正1。 变量t,存放当前累加项,并赋初值为1。 p=p+t;
  • 总结:程序控制结构

    2018-12-09 11:59:10
    循环语句则是本章一大重点,其意义是实现对于累加与累乘等运算的机械重复,以求解一些高等函数与大数据运算。 循环结构有while语句、do-while 语句和for 语句。while语句和do-while语句主要用于条件循环。 for语句是...
  • C++——求展开式问题

    2018-04-02 21:18:34
    求展开式问题 关于展开式的问题,要先找到递推公式,找到每一项的通项,然后累加或累乘,利用循环语句,程序如下:while语句实现do-while语句实现2.计算实数n次方根(循环语句搭配判断以及break和continue) ...
  • 十二月C语音总结心得

    2018-12-09 21:06:35
    在最近的学习中,我们又学习了循环控制结构和结束语句(流程的转移控制)如何编写。知道了围绕累加求和、累乘求积、来介绍了技术控制循环和如何寻找...1、循环语句 while. do-while. for (1)include &lt;stdio....
  • 围绕累加求和和累乘求积介绍了技术控制的循环和如何寻找累加或累乘项(通项)的结构或规律,主要学习以下内容: 1.技术控制的循环,条件控制的循环,嵌套循环。 2.for语句,while语句,do-while语句,continue语句...
  • JS语法回顾(二)

    2021-01-24 22:33:34
    文章目录操作符算数运算符比较运算符逻辑运算符赋值运算符一元运算符运算符优先级流程控制语句表达式、语句if语句三元表达式switch语句for循环do while循环while循环break语句continue语句穷举思想累加器、累乘器 ...
  • 程序控制结构

    2020-11-27 22:17:30
    程序控制结构程序的分支结构单分支结构二分支结构多分支结构pass语句条件判断及组合程序的异常处理遍历循环计数循环**计数循环(N次):****计数循环(特定次):**字符串遍历循环列表遍历循环文件遍历循环无限循环循环...
  • 第三次作业

    2016-09-29 17:06:00
    2.实验过程中遇到的问题及解决方法:在带有函数的循环程序计算中,循环语句的表达不是很清楚,还有就是编程中的小细节容易遗漏,解决方法就是参考书上例题,多次尝试,多加小心,理解并熟悉本节课的内容 3.实验心得...
  • C语言程序设计

    2018-12-04 16:40:01
     本章围绕累加求和和累乘求积介绍了计数控制的循环和如何寻找累加或累乘项(通项)的构成规律,围绕猜数游戏介绍了条件控制的循环,围绕韩信点兵事例介绍了穷举法和流程转移控制数据。主要内容如下: 1、技数控制的...
  • 求1!+2!+3!+...20!的值

    2016-05-28 22:08:27
    对这个函数进行分:①存在两种运算②先乘后加要实现这两种运算都用到循环语句:首先实现累乘的效果再实现累加第一种public class Demo3 {public static int f(int n){int s=1;for(int i=1;i<=n;i++){s *=i;}return ...
  • 实用标准 算法与程序实践 2习 题 解 答 8递归 1 让我们来看看计算 n的阶乘的计算机程序的写法 在数学上 求 n的阶乘 有两种... 要反复把 12 3 n-2 n-1 和 n累乘起来 是循环的思想很直接地我们会用一个循环语句将 n以下的
  • JS基础---ES5ECMAScript2015(ES5)表达式和运算符`JS基本表达式``JS运算符`JS流程控制语句`条件语句``循环语句`算法`什么是算法``累加器和累乘器``穷举法``综合算法`数组`数组简介及定义/数组类型检测``数组常用...
  • s=2+4+6+......+100,利用各种循环语句编程求解s。(2550) 2、条件累加。s=1+3+5+9+......,求s不大于1000最大值。 3、累加累乘。编程求:2!+4!+6!+8!+10! (3669866) 4、找最小数。随机产生十个1-100范围内的...

空空如也

空空如也

1 2
收藏数 36
精华内容 14
关键字:

循环语句累乘