图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
所谓算法,简单地说,就是为了解决一个具体问题而采取的确定、有限有序、可执行的操作步骤。当然,程序设计中的算法仅指计算机算法,即计算机能够执行的算法。
程序设计是一门艺术,主要体现在算法设计和结构设计上。如果说结构设计是程序的“肉体”,那么算法设计就是程序的“灵魂”。
著名的计算机科学家沃思(N.Wirth)曾提出一个经典公式:
数据结构+算法=程序
这个公式仅对面向过程的语言(如C语言)成立,它说明一个程序应由两部分组成:
(1)数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。
(2)算法是对操作或行为(即操作步骤)的描述。算法代表着用系统的方法描述解决问题的策略。不同的算法可能用不同的时间、空间或效率来完成同样的任务。
计算机进行问题求解的算法大致可以分为以下两类:
①数值算法,主要用于解决数值求解问题。(www.chuimin.cn)
②非数值算法,主要用于解决需要用逻辑推理才能解决的问题,如人工智能中的许多问题以及搜索、分类等问题都属于这类算法。
那么怎样衡量一个算法的正确性呢?一般地,可用如下特征来衡量。
①有穷性。算法包含的步骤应该是有限的,每一步都应在合理的时间内完成,否则算法就失去了它的使用价值。
②确定性。算法包含的操作步骤应该是确定的,不允许有歧义。例如,“如果x≥0则输出Yes;如果x≤0,则输出No”就是有歧义的,即当x等于0时,既要输出Yes,又要输出No,这就产生了不确定性。
③有效性。算法中的每个步骤都应能有效执行,且能得到确定的结果,例如,对一个负数开平方或者取对数,就是一个无效的操作。
④允许没有输入或者有多个输入。有些算法不需要从外界输入数据,如计算5!;而有些算法则需要输入数据,如计算n!,而n的值是未知的,执行时需要从键盘输入n的值后再计算。
⑤必须有一个或者多个输出。算法的实现是以得到计算结果为目的的,没有任何输出的算法没有任何意义。
有关C语言程序设计基础(第3版)的文章
图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
针对不同的实际应用,数据排序方法有很多种。本节介绍两种常用排序方法的基本思想和实现方法,帮助读者初步理解排序方法的计算机解决思路。②不考虑已排好序的数据,将剩下的数据作为待排序列。编写程序实现冒泡排序算法,对随机生成的10个3位整数按升序进行排序并输出。......
2023-11-20
算法的描述方法主要有如下几种。例如,用传统流程图表示的顺序结构如图3.2所示,用NS图表示的顺序结构如图3.2所示,表示先执行A操作,再执行B操作,两者是顺序执行的关系。......
2023-11-20
一个函数直接或间接地调用自己,称为函数的递归调用。所以函数递归调用的实现必须依靠系统提供一个特殊部件(堆栈)存放未完成的操作,以保证当递归调用结束回溯时不会丢失任何应该执行而没有执行的操作。为了理解函数递归调用的特性,参照例5.9的程序讨论函数递归调用的执行过程,为了讨论方便为程序加上行号。函数递归调用示例。......
2023-11-20
例如,有如下所示的C语句序列:则结构体指针变量p1指向结构体数组元素a[2],其关系如图10.2所示。此时应该注意到被指针变量p1指向的结构体数组元素本身是不能作为整体操作的,所以*p1也不能作为整体操作。......
2023-11-20
for循环控制结构的执行过程如图4.3所示。②C语言的for循环控制结构不仅提供在其控制部分的exp3中修改循环控制变量的值,而且还允许在for循环的循环体中存在能改变循环控制条件的语句,使用时需特别注意。图4.3for控制结构的执行过程③无论exp1和exp3的取值如何,只要exp2是一个非0值常量表达式,则构成了死循环。......
2023-11-20
函数fwrite的功能则是将内存储器中指定区域的数据块写入与文件指针stream相关联的文件中。将一个5×10的整型二维数组数据存入指定文件中。编写程序实现功能:将例7.10所创建文件中的数据读出,并将数据按5行10列的矩阵形式进行显示。由于要接收从文件中读出的二维数组数据,程序中需要定义构成方式与之对应的二维数组。......
2023-11-20
在进行C语言程序设计时,合理使用库函数有以下好处:①对于某些功能的实现已经存在标准化的函数代码,这时直接使用库函数,可以避免重复编制,简化程序设计过程,提高程序设计的效率。②库函数在开发时充分考虑了各种影响因素,经过了长期使用的考验,使用标准库函数可以使程序的健壮性得到足够的保证,从而提高编程的质量。使用标准库函数时要注意函数的功能、参数的个数与类型、函数值的类型。......
2023-11-20
相关推荐