c语言程序设计案例教程(第2版)笔记(二)

您所在的位置:网站首页 程序设计教程第二版答案 c语言程序设计案例教程(第2版)笔记(二)

c语言程序设计案例教程(第2版)笔记(二)

2024-07-08 14:32| 来源: 网络整理| 查看: 265

零散知识点 模块化:将一个问题分解成若干个子问题的过程成为模块化。模块化的优点:不但可以将一个复杂的问题分解成几个相对简单的问题;还可以提高程序代码的重用性。函数:函数是构成C程序的基本单位。函数由函数首部和函数体两个部分组成,函数首部包含函数的返回类型、函数名称和参数表声明;函数体包含实现特定功能所需要执行的语句序列。函数调用原则:C语言中规定,所有函数必须“先定义后使用”。即:如果被调用的函数在前面定义,则可以直接调用;否则,需要将被调用函数的函数原型在前面声明,以便通告C编译程序,这个函数的完整定义在后面。常用标准函数头文件 math.h——包含与数学有关的函数ctype.h——包含与字符处理有关的函数string.h——包含与字符串处理有关的函数stdio.h——包含与输入输出有关的函数stdlib.h——包含与动态分配存储空间和产生随机值有关的函数 递归 递归定义:定义一个概念的时候用到自身概念的定义形式被称为递归定义。递归算法:具有“求解子问题的基本方法与求解整个问题所采用的方法一样”特征的求解算法称为递归算法。递归函数特征:在函数的执行体中出现了调用函数本身。例子——实现阶乘递归算法的递归函数如下: 1 //计算n! 2 long factorial(int n) 3 { 4 if (n == 0) 5 return 1; 6 else 7 return n * factorial(n - 1); 8 } 利用递归函数实现二分查找

二分查找算法描述:对于一个已经从小到大排序的数据序列,用给定数据key与查找区间中间位置的数据比较,如果相等表明查找成功;否则,如果key比中间位置的数据小,则在前半个区间用同样的方法继续查找;否则在后半个区间用同样的方法继续查找。

实现代码如下:

1 #include 2 #pragma warning(disable:4996) 3 #include 4 #define NUM 10 5 void input(int value[]); 6 void output(int value[]); 7 int search(int value[], int key, int low, int high); 8 9 main() 10 { 11 int value[NUM], result, key; 12 input(value); 13 output(value); 14 printf("\nEnter the key : "); 15 scanf("%d\n", &key); 16 17 result = search(value, key, 0, NUM - 1); 18 if (result != 1) 19 printf("\n%d is the %dth element", key, result); 20 else 21 printf("\nfail to find %d", key); 22 } 23 24 void input(int value[]) 25 { 26 int i; 27 for (i = 0; i < NUM; i++){ 28 scanf("%d", &value[i]); 29 } 30 } 31 32 void output(int value[]) 33 { 34 int i; 35 for (i = 0; i < NUM; i++){ 36 printf("%4d", value[i]); 37 } 38 } 39 40 int search(int value[], int key, int low, int high) 41 { 42 int mid; 43 if (low>high) 44 return -1; 45 mid = (low + high) / 2; 46 if (value[mid] == key) 47 return mid; 48 if (key

strlen(maxline)){ 26 maxlength = n; 27 strcpy(maxline, line); 28 } 29 } while (n > 0); 30 }

 

本博客内容为原创,版权所有违者必究,转载请注明来源 http://www.cnblogs.com/sunshine-blog/ 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3