c语言程序设计第3版上机实验,C语言程序设计-实验第三次上机实验报告.doc

C语言程序设计-实验第三次上机实验报告.doc

4 4. .第三第三次实验次实验 C C 语言程序设计语言程序设计 实验报告实验报告 专业 计算机科学与技术 班级 信安 1302 班 日期 2014.4.12 成绩 实验组别 第 3 次实验 流程控制实验 指导教师 学生姓名 学号 同组人姓名 实验名称实验名称 流程控制实验 4.14.1 实验目的实验目的 1.1.掌握复合语句,掌握复合语句, ifif 语句,语句, switchswitch 语语句的使用, 熟练掌握句的使用, 熟练掌握 forfor whilewhile dodo- -whilewhile 三种基本的循环控制语句的使用,掌握重复循环技术,了解转移语句与标号语三种基本的循环控制语句的使用,掌握重复循环技术,了解转移语句与标号语 句。句。 2.2.掌握运用掌握运用 forforwhilewhiledodo- -whilewhile 语句来编写程序。语句来编写程序。 3.3.练习转移语句和标号语句的使用。练习转移语句和标号语句的使用。 4.4.使用集成开发环境的调试功能单步执行,设置断点,观察变量值。使用集成开发环境的调试功能单步执行,设置断点,观察变量值。 4.24.2 实验内容实验内容 (一)在不用数组的情况下求(一)在不用数组的情况下求 n n 个数的最大值最小值和平均值个数的最大值最小值和平均值 源程序如下源程序如下 shangji3shangji3 chengxu14chengxu14 include tdio.h int mainint main int max,min,n,x,i;int max,min,n,x,i; float s;float s; s0;i1;s0;i1; printf“enter n“;printf“enter n“; scanf“d“,scanf“d“, printf“enter the first number“;printf“enter the first number“; scanf“d“,scanf“d“, ssx;ssx; maxx;minx;maxx;minx; dodo scanf“d“,scanf“d“, sx;sx; ifxmax maxx;ifxmax maxx; else ifxinclude define EPS 1edefine EPS 1e- -6 6 int mainint main int i,j;int i,j; double s;double s; fors0,i1;1.0/iEPS;ifors0,i1;1.0/iEPS;i ji21ji21- -1;1; sj*1.0/2*sj*1.0/2* i i- -1;1; printf“sprintf“s. .lf“,4*s;lf“,4*s; return 0;return 0; 实验步骤实验步骤 步骤一 在执行函数前定义精确度, 定义两个整型变量分别控制循环和决定加上的数的正 负. 步骤二开始循环,控制循环结束的条件为再次加上的数的绝对值小于精确值。 步骤三结束循环,将累次相加的结果输出。 调试及编译过程调试及编译过程 出现的不足及修改无 运行结果输出预期的结果。 (三)(三)完全数是一些特殊的自然数。它所有的真因子(即除了自身以完全数是一些特殊的自然数。它所有的真因子(即除了自身以 外的外的约数约数)的和恰好等于它本身。)的和恰好等于它本身。试求出试求出 11000 范围内的所有范围内的所有完全完全 数数 源程序如下源程序如下shangji3shangji3 chengxu16chengxu16 include include int wqsint x;int wqsint x; int mainint main int i;int i; fori1;iinclude int sxhint x;int sxhint x; int mainint main int i;int i; fori100;iinclude int qint x;int qint x; int jint y;int jint y; int pint x1,int x2;int pint x1,int x2; int mainint main int i;int i; fori10;iinclude int remainint x;int remainint x; int mainint main int i,s13;int i,s13; fori2;iinclude int mainint main int r,s0,r1100;int r,s0,r1100; dodo rr1/5;rr1/5; sr;sr; whiler1/5;whiler1/5; printf“the number of 0 is d“,s;printf“the number of 0 is d“,s; return 0;return 0; 实验步骤实验步骤 步骤一通过查找资料并分析得,造成 0 的原因为一对 2 和 5 的乘积,而在 1 到 100 的数 中,有 2 的因子比有 5 的因子多得多,于是只用计算一个数中 5 的因子有多少个,再把它们 相加。 步骤二由于 1 到 100 中,每隔五个数就有一个数是 5 的倍数,而在这些 5 的倍数中,又 每隔 5 个数就会有一个是 25 的倍数,只是 5 的倍数而不是 25 的倍数时,能得出 1 个零,是 25 的倍数时,能得出 2 个零。 步骤三将 100 除以 5 得出 20 个数,再将 20 除以 5 得出 4,4 除以 5 为 0 ,因此计算得 204024.用算法实现上述过程即可。 调试及编译过程调试及编译过程 现的不足及修改开始时打算通过保留末尾零以及下一位(即 87000 保留 7000)来计算结 果,但这样做会造成两个结果,一是会造成溢出,二是有些事 25 及更大的倍数如 2500,若 只保留 500,在乘以 4 的时候会少算一个零,这样做无法确定合适的保留位数。于是通过查 找资料等方式,寻求到了科学的解决方法。 4.34.3 实验总结实验总结 1.1. 通过此次实验,了解到算法是以简洁为灵魂的,在一个问题有多种解决办法时应首 先采取简洁的方法, 而且在设计算法时不能只考虑理想情况, 还要考虑到算法的时间复杂性 和空间复杂性。 2. 通过本次实验,加强子函数调用和循环控制的练习,并能够通过运行结果适当修改 循环因子的循环条件,来使程序运行正确。 3. 通过本次实验,加强对多重循环的应用能力,以及控制内层循环和外层循环之间的 联系,在编译过程中若发现循环次数不对,直接改变控制循环的条件可以发现问题。 4. 通过此次实验,引入了子函数,加深对子函数方便性的理解。 5. 通过此次实验,加强了对循环语句的练习,增加了一种新的控制循环结束的方式, 引入预编译的过程。 6. 通过本次实验,加深了对 do while 循环的理解,学会了控制循环的新方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值