c语言程序设计基础算法与C程序设计.pptx
算 法程序用编程语言编写,完成特定功能的语句的集合。编程步骤:1.明确问题 2.问题 若干具体步骤(算法)3.算法 程序 4.上机调试运行算法解题方法或解题步骤的精确描述算法表示:文字描述、流程图和N-S流程图第1页/共23页算法与程序程序算法数据结构 结构化程序设计方法 语言工具和环境第2页/共23页例3-1 从键盘中输入100个整数,对其中的正整数进行累加,最后输出结果。算法描述(自然语言)输入一个数;如果该数 0,累加它;如果100个数没有输入完,转步骤(1);输入完100个数后,输出累加和。第3页/共23页例3-1 算法描述(流程图)开始 输入一个数 该数0 累加输入完100个数 输出累加和 结束起止框处理框判断框流向线YYNN第4页/共23页例3-1 算法描述(N-S流程图)处理判断重复第5页/共23页算法的C语句实现void main()int x;/*存放输入数的单元*/int count;/*存放输入个数的单元*/int sum;/*存放累加和的单元*/count=0;sum=0;/*工作单元初值*/do scanf(“%d”,&x);/*输入一个数*/count+;/*每输入一个数,记一下数*/if(x0)/*判断输入数0否*/sum=sum+x;/*是0,则加到累加和中*/while (count temp第12页/共23页例34 交换变量的值例 对两个变量先输入两个值,然后交换这两个变量的值。x temp y步骤:1 x-temp 2 x temp 2 x y第14页/共23页例34 交换变量的值例 对两个变量先输入两个值,然后交换这两个变量的值。x temp y步骤:1 x-temp 2 x y第15页/共23页例34 交换变量的值对两个变量先输入两个值,然后交换这两个变量的值。main()int x,y,temp;scanf(“%d%d”,&x,&y);temp=x;x=y;y=temp;printf(“first=%d,second=%d”,x,y);第16页/共23页C 程序的基本结构顺序结构选择结构 语句1;语句2;条件?满足不满足条件满足不满足语句1 语句2第17页/共23页选择结构例 输入变量x,计算y值。1 当 x=0 y=-1 当 x0)y=1;else y=-1;printf(“x=%d,y=%d”,x,y);x0满足 不满足 y=1 y=-1第18页/共23页C 程序的基本结构顺序结构选择结构循环结构 不满足 满足 重复执行的语句;后一语句;条件?第19页/共23页循环结构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);重复步骤第20页/共23页C 程序的基本结构结构化程序设计基本要求:自顶向下,模块化设计;使用三种基本结构构造程序;程序书写规范,切勿随心所欲;清晰第一,效率第二。思路清晰书写清晰(变量名、函数名、注解等)书写使用阶梯形第21页/共23页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&jb j)a2k=b j;j+;else a2k=a1i;if(a1i=b j)j+;i+;k+;if(in1)for(;in1;i+,k+)a2k=a1i;if(jn2)for(;jn2;j+,k+)a2k=b j;return(k);(请注意书写格式)第22页/共23页感谢您的欣赏!第23页/共23页