《c语言程序设计基础第5章(算法与C程序设计)(1).ppt》由会员分享,可在线阅读,更多相关《c语言程序设计基础第5章(算法与C程序设计)(1).ppt(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、算算 法法q程序用编程语言编写,完成特定功能的语句的集合。q编程步骤: 1. 明确问题 2. 问题 若干具体步骤(算法) 3. 算法 程序 4. 上机调试运行q算法解题方法或解题步骤的精确描述算法表示:文字描述、流程图和N-S流程图算法算法与程序与程序q程序算法数据结构 结构化程序设计方法 语言工具和环境例例3-13-1 从键盘中输入100个整数,对其中的正整数进行累加,最后输出结果。算法描述(自然语言) 输入一个数; 如果该数 0,累加它; 如果100个数没有输入完,转步骤(1); 输入完100个数后,输出累加和。例例3-1 3-1 算法描述算法描述 ( (流程图流程图) ) 开始 输入一个
2、数 该数0 累加输入完100个数 输出累加和 结束起止框起止框处理框处理框判断框判断框流向线YYNN例例3-1 3-1 算法描述算法描述(N-S(N-S流程图流程图) )输入一个数 该数0满足 不满足加到累加和中 输入完100个数否 输出累加和处理判断重复算法的算法的C语句实现语句实现void main( ) int x; /* 存放输入数的单元 */ int count; /* 存放输入个数的单元 */ int sum; /* 存放累加和的单元 */ count = 0; sum = 0; /* 工作单元初值 */ do scanf (“%d” , &x); /* 输入一个数 */ coun
3、t +; /* 每输入一个数,记一下数 */ if (x0) /* 判断输入数0否 */ sum = sum + x; /* 是0,则加到累加和中 */ while ( count temp例例3 34 4 交换变量的值交换变量的值例 对两个变量先输入两个值,然后交换这两个变量的值。x temp y步骤: 1 x - temp 2 x temp 2 x y例例3 34 4 交换变量的值交换变量的值例 对两个变量先输入两个值,然后交换这两个变量的值。x temp y步骤: 1 x - temp 2 x y例例3 34 4 交换变量的值交换变量的值对两个变量先输入两个值,然后交换这两个变量的值。m
4、ain() int x, y, temp; scanf(“%d%d”, &x, &y); temp = x; x = y; y = temp; printf(“first=%d, second=%d”, x, y); C 程序的基本结构程序的基本结构q顺序结构q选择结构 语句1 ; 语句2 ;条件?满足不满足条件满足不满足语句1 语句2选择结构选择结构例 输入变量x,计算y值。 1 当 x=0 y = -1 当 x0) y = 1; else y = -1; printf(“x=%d, y=%d”, x, y);x0满足 不满足 y = 1 y = -1C 程序的基本结构程序的基本结构q顺序结
5、构q选择结构q循环结构 不满足 满足 重复执行的语句; 后一语句;条件?循环结构循环结构void main( )int i, max, x;i=9;scanf(%d, &x)max = x; while ( i 0 ) scanf (“%d”, &x); if ( x max ) max = x; i -;printf(max number is %d ,max);重复步骤C 程序的基本结构程序的基本结构q结构化程序设计基本要求:o自顶向下,模块化设计;o使用三种基本结构构造程序;o程序书写规范,切勿随心所欲;o 清晰第一,效率第二。 思路清晰 书写清晰(变量名、函数名、注解等) 书写使用阶梯
6、形int merge(int a1 , int n1, int a2 , int n2) /* 把2个排好序的数组a1、a2归并到a2上 */ int i,j=0,k=0, b10; if (n2=0) for ( ; j0) for (i=0; in2; i+) bi=a2i; i=0; while (in1&jbj) a2k=bj; j+; else a2k=a1i; if (a1i=bj) j+; i+; k+; if ( in1 ) for ( ; in1; i+,k+) a2k=a1i; if ( jn2 ) for ( ; jn2; j+,k+) a2k=bj; return(k); (请注意书写格式)(请注意书写格式)