图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
排序是计算机处理数据的一种常见重要操作,其作用是将数列中的数据按照特定顺序,如升序或降序重新排列组织。排序分为内部排序和外部排序。在进行内部排序时,要求被处理的数据全部进入计算机系统的内(主)存储器,整个排序过程都在计算机系统的内存储器中完成。针对不同的实际应用,数据排序方法有很多种。本节介绍两种常用排序方法的基本思想和实现方法,帮助读者初步理解排序方法的计算机解决思路。
1.冒泡排序(Bubble sorting)
冒泡排序算法的基本思想是两两比较待排序数据序列中的相邻数据,根据比较结果来交换这两个数据在序列中的位置。其算法基本概念可描述如下:
①从待排序列中第一个位置开始,依次比较相邻两个位置上的数据,若是逆序则交换,一趟扫描后,最大(或最小)的数据被交换到了最后,这个过程称为一趟排序。
②不考虑已排好序的数据,将剩下的数据作为待排序列。
③重复①、②两步直到排序完成,n个数据的排序过程最多进行n-1趟。
【例6.19】 编写程序实现冒泡排序算法,对随机生成的10个3位整数按升序进行排序并输出。
程序的一次执行结果为:
数据排序前:169 999 306 717 383 243 702 652 249 612
数据排序后:169 243 249 306 383 612 652 702 717 999
2.选择排序(Select sorting)(www.chuimin.cn)
选择排序法的基本思想是对于待排的N个数据,在其中寻找最大(或最小)的数值,并将其移动到最前面作为第一个数据;在剩下的N-1个数据中用相同的方法寻找最大(或最小)的数值,并将其作为第二个数据;以此类推,直到将整个待排数据集合处理完为止(只剩下一个待处理数据)。选择排序的基本方法是:
①在所有的数据中选取最大(或最小)的一个,并将其与第一个数据交换位置。
②将上次操作完成后剩下的数据构成一个新数据集合。
③在新数据集的所有数据中选取最大(或最小)的一个,并将其与新数据集中的第一个数据交换位置。
④如果还有待处理数据,转到②。
【例6.20】 编写程序实现选择排序算法,随机生成长度为50的英语字母字符串,将字符串中的数据按升序进行排序并输出。
程序的一次运行结果为:
数据排序前:jDwnuxpVULEUYrgcDjUSEqCavvW fGtdeCoDSZKkSiHpZoIdrmpS
数据排序后:CCDDDEEGHIKLSSSSUUUVWYZZacddefgijjkmnoopppqrrtuvvwx
有关C语言程序设计基础(第3版)的文章
图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
一个函数直接或间接地调用自己,称为函数的递归调用。所以函数递归调用的实现必须依靠系统提供一个特殊部件(堆栈)存放未完成的操作,以保证当递归调用结束回溯时不会丢失任何应该执行而没有执行的操作。为了理解函数递归调用的特性,参照例5.9的程序讨论函数递归调用的执行过程,为了讨论方便为程序加上行号。函数递归调用示例。......
2023-11-20
C语言把括号、赋值、强制类型转换等都作为运算符处理,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算,功能强大。另外,C语言还把括号、下标、强制类型转换、取地址等都作为运算符处理,并通过与算数运算符的组合达到不同的目的,从而使程序更加简洁明了。C语言具有超强的可移植性。总之,C语言在运算符方面是比较容易让人混淆的。......
2023-11-18
例如,有如下所示的C语句序列:则结构体指针变量p1指向结构体数组元素a[2],其关系如图10.2所示。此时应该注意到被指针变量p1指向的结构体数组元素本身是不能作为整体操作的,所以*p1也不能作为整体操作。......
2023-11-20
C语言中逻辑运算符及其含义见表3.2。表3.2逻辑运算符及其含义逻辑运算符“&&”和“||”是双目运算符,具有左结合性;“!”表3.3逻辑运算真值表C语言中进行逻辑表达式求值运算时,不但要注意逻辑运算符本身的运算规则,而且还必须要遵循下面的两条原则:·对逻辑表达式从左到右进行求解。......
2023-11-20
C语言的最大特点是:功能强、使用方便灵活。由于这个“灵活”给程序的调试带来了许多不便,尤其对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误。在C语言中大写字母和小写字母是两个不同的字符。C语言规定以’\0’作字符串结束标志,它是由系统自动加上的。当一个语句中使用多层括弧时常出现这类错误。main()C语言中对数组的定义或引用数组元素时必须用方括弧。......
2023-11-18
项目2:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。图3.15兔子问题输出结果根据以上的分析可以知道,循环次数可以为0,因此该程序是一个条件型循环,可以利用while语句编写程序。熟悉了循环结构在程序设计中的运用,循环结构语句包含了while语句、do…......
2023-11-18
相关推荐