图1.2分支结构图3.循环结构循环结构可以减少源程序重复编写的工作量,提高程序处理复杂数据的能力,这也是程序设计中最能发挥计算机特长的程序结构。图1.3C语言程序结构......
2025-09-30
递推就是一个不断由变量旧值按照一定的规律推出变量新值的过程,递推在程序设计中往往通过迭代方法实现。迭代一般与3个因素有关,它们是初始值、迭代公式、迭代结束条件(迭代次数)。
迭代算法的基本思想:迭代变量先取初值,据初值(或旧值)按迭代公式计算出新值,用新值对变量原值进行更新替换;重复以上过程,直到迭代结束条件满足时结束迭代。迭代过程在程序结构上使用循环结构进行处理。
【例4.11】 求两个正整数的最大公约数和最小公倍数。
题目分析:使用辗转相除法实现求两个非负整数m和n(m>n)的最大公倍数,其算法可以描述为:
①m除以n得到余数r(0≤r<n)。
②若r=0则算法结束,n为最大公约数。否则执行步骤③。
③m←n,n←r,转回到步骤①。(https://www.chuimin.cn)
当已知两个非负整数m和n的最大公约数后,求其最小公倍数的算法可以简单描述为:两个正整数之积除以它们的最大公约数。
上面程序代码是完全按照算法描述的步骤书写的,考虑到除数肯定不能为0,两个数的乘积可以在迭代之前计算等因素,程序可以进行如下优化,请读者对照理解。
【例4.12】 求出斐波那契数列的前n项。裴波那契(Fibonacci)数列:前两个数据项都是1,从第3个数据项开始,其后的每一个数据项都是其前面的两个数据项之和。
题目分析:设用f1、f2和f3表示相邻的3个裴波那契数据项,据题意有f1、f2的初始值为1,即迭代的初始条件为:f1=f2=1;迭代的公式为:f3=f1+f2。有初始条件和迭代公式只能描述前3项之间的关系,为了反复使用迭代公式,可以在每一个数据项求出后将f1、f2和f3顺次向后移动一个数据项,即将f2的值赋给f1,f3的值赋给f2,从而构成如下的迭代语句序列:f3=f1+f2;、f1=f2;、f2=f3;,反复使用该语句序列就能够求出所要求的裴波那契数列。
/Name:ex0412.c/
相关文章
图1.2分支结构图3.循环结构循环结构可以减少源程序重复编写的工作量,提高程序处理复杂数据的能力,这也是程序设计中最能发挥计算机特长的程序结构。图1.3C语言程序结构......
2025-09-30
C语言中逻辑运算符及其含义见表3.2。表3.2逻辑运算符及其含义逻辑运算符“&&”和“||”是双目运算符,具有左结合性;“!”表3.3逻辑运算真值表C语言中进行逻辑表达式求值运算时,不但要注意逻辑运算符本身的运算规则,而且还必须要遵循下面的两条原则:·对逻辑表达式从左到右进行求解。......
2025-09-30
A.与参数x的类型相同B.无法确定C.void类型D.int类型3.为了避免嵌套的条件语句if-else的二义性,C语言规定()。A.else与缩排位置相同的if配对B.else与同一行上的if配对C.else与其之后最近的if配对D.else与其之前最近的尚未配对的if配对4.设x、y、z和k都是int型变量,则执行表达式:x=后,x的值为()。A.7 B.6 C.5 D.47.在C语言程序中,用关键字()定义无符号型变量。else语句实现两个分支。......
2025-09-30
程序设计是指设计、编写和调试程序的方法与过程。由于程序是软件的本体,因此软件的质量主要通过程序的质量体现,因此,研究一种切实可行的程序设计方法至关重要。继承是面向对象程序设计方法的一个重要标志,利用继承机制可以大大提高程序的可重用性和可扩充性。......
2025-09-30
在C语言中,“=”称为赋值运算符,赋值运算符的左边一定是变量,不能是常量或表达式。赋值表达式可以作为一个运算成分出现在另外的表达式中,从而构成比较复杂的表达式或语句。在赋值表达式计算中,若赋值运算符两边的数据类型不相同时,系统将自动进行类型转换。赋值运算符使用示例。......
2025-09-30
while循环控制结构的执行过程如图4.1所示。使用while循环结构时需要注意以下几点:图4.1while控制结构执行过程①由于整个结构的执行过程是先判断、后执行,因而循环体有可能一次都不执行。......
2025-09-30
图3.6程序的4分支结构示意图对于一般的多分支情况,程序设计语言中没有直接对应的控制语句,需要首先对其分解,然后用单分支或者双分支控制结构的嵌套进行处理。图3.7分支结构对称分解示意图图3.8分支结构不对称分解示意图1.使用if语句嵌套组成多分支结构程序如果if结构或者else结构的语句部分又是另外一个if结构,称为if语句的嵌套。......
2025-09-30
相关推荐