C课程设计第04章 C程序的流程控制.ppt

C课程设计第04章 C程序的流程控制.ppt

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 C程序的流程控制 *重点与难点 4.1 算法 4.2 C语句概述 4.3 条件分支 4.4 多分支选择 4.5 循环结构 4.6 结构化程序设计方法 *本章小结 *作业 重点与难点 重点:C程序的流程控制,结构化程序设计方法。 难点:掌握C程序的流程控制。 4.1 算法 4.1 算法的特性 4.2 算法设计的要求 4.3 算法的表示 算法的概念 算法(Algorithm): 对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。 算法分类 1)数值计算算法 2)非数值计算算法 简单算法举例 例1 求1X2X3X4X5。 例2 有50个学生,要求将他们之中成绩在80分以上者打印出来。 例3 判断2000至2500年中的每一年是否闰年,将结果输出。 例4 求 例5 对一个大于或等于3的正整数,判断它是否为素数。 例1 求1X2X3X4X5 s=1 /*s用来存放连乘的结果*/ i=1 /*i代表连乘的数,1,2,3,4,5*/ s=s*i i=i+1 如果i6 转3),否则s的值为运算结果 连乘算法的代入推算 初始:i=1,s=1 1) i=1,s=s*i=1*1=1 2) i=2,s=s*i=1*2=2 3) i=3,s=s*i=(1*2)*3=6 4) i=4,s=s*i=(1*2*3)*4=24 5) i=5,s=s*i=(1*2*3*4)*5=120 连乘对应的C程序 main() { long int s=1; int i; for(i=1;i=5;i++)s=s*i; printf(s=%ld,s); } 例2 有50个学生,要求将他们之中成绩在80分以上者打印出来。 1)i=1 /*i表示第i个学生*/ 2)如果gi=80,打印成绩 /*gi表示第i个学生的成绩*/ 3)i=i+1 4)如果i=50,转2);否则算法结束 例2 对应的C程序 main() { int i,g[50]; i=1; do{ if(g[i]=80) printf(“ %d ”,g[i]); i=i+1; }while(i=50); } 例3 判断2000至2500年中的每一年是否闰年,将结果输出。 给定一个年份y,如何判断y是否闰年? 满足下列规则二者之一: (1)y能被4整除且不能被100整除; (2)y能被400整除。 注意:如何表示“整除”? 构造闰年函数 1)y=y0 /* y0代表一个具体的年份) 2)如果y能被4整除且不能被100整除;或者y能被400整除,返回1,否则返回0 /*1:y是闰年;0:y不是闰年*/ 例3对应的c程序 main() { int y0; printf(“\nleap years:”); for(y0=2000;y0=2500;y0++) if (leap(y0)) printf(“\n%d”,y0); } int leap(int y) { if((y%4==0y%100!=0)||(y%400==0)) return(1); else return(0); } 例4 求 公式变形 连加式求和(1+2+...+100) 0)i=1,s=0 /*s存放结果,初值为0*/ 1)s=s+i 2)i=i+1 3)如果i=100,转1);否则算法结束,s代表连加的结果 连加式对应的c程序(1+2+3+...+100) main() { int i,s; i=1;s=0; while(i=100) {s=s+i;i++;} } 分式连加 t=1,s=1,sum=0 /*s代表1,-1,1...; t代表分母1,2,3,...*/ sum=sum+s/t t=t+1,s=-1*s 如果t=100,转2);否则算法结束,sum代表分式连加的结果 分式连加算法迭代 0) t=1,s=1,sum=0 sum=sum+s/t=0+1/1=1 t=t+1=1+1=2,s=-1*s=-1*1=-1, sum=sum+s/t=1/1+(-1/2)=1-1/2 t=t+1=2+1=3,s=-1*s=-1*(-1)=1 sum=sum+s/t=1-1/2+1/3 ....... 例5 对一个大于或等于3的正整数,判断它是否为素数。 何谓素数? 所谓素数,是指除了1和该数本身(n)之外,不能2至n-1中的其他任何整数整除的数。 判断素数的简单算法: 将n作为被除数,将2到(n-1)各个整数

文档评论(0)

180****3195 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档