




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
循环结构程序设计一、实验目的1.掌握三种循环语句的格式、执行与设计技巧,掌握分支程序结构与循环程序结构的配合(嵌套)使用,使用常用算法设计相应的程序以解决实际问题;2.实验重点——三种循环语句及循环嵌套3.实验难点——循环嵌套4.实验要求——重点讨论for语句及几种常用的程序设计方法:穷举、递推、迭代法二、实验原理1.while语句while语句的一般形式为:while(表达式)语句;其执行准则为当表达式的值为非0时执行while中的内嵌语句。在表达式中,往往有一个变量用来控制循环的结束,这个变量叫循环控制变量。在这种循环中,必须在进入循环之前给循环控制变量赋初值,而在循环体中,还要注意必须有一句使循环控制变量的值改变的语句,2.do-while语句一般形式为:do语句while(表达式);执行准则为:先执行一次指定的内嵌语句,而后判断表达式,当表达式的值为0时结束循环。在表达式中,往往有一个变量用来控制循环的结束,控制变量。在这种循环中,必须在进入循环之前给循环控制变量赋初值,而在循环体中,还要注意必须有一句使循环控制变量的值改变的语句,这个变量叫循环3.for语句一般形式为:for(表达式1;表达式2;表达式3)执行过程为:语句;①先求解表达式1;②求解表达式2,行下一步;若其值为假,则结束循环;③求解表达式3;若其值为真,则执行指定的内嵌语句而后执
④转②;⑤执行for下面的语句。说明:①一般形式中的表达式1可以省略,此时应该在for语句前给循环变量赋初值;如for(;i<=100;i++)sum=sum+i;②如果表达式2省略,则循环为无限循环;③表达式3也可以省略,但此时应该另外设法保证循环正常结束;如for(sum=0,i=1;i<=100;){sum=sum+i;i++}④可以只有表达式2,此时完全等同于⑤三个表达式都可以省略,此时相当于while语句;while(1)语句,循环为无限循环;如for(;;)⑥表达式1和表达式3可以是逗号表达式;⑦表达式2一般是关系表达式。4.break语句和continue语句①break语句一般形式为:break;其作用是使流程从循环体内跳出循环体。②continue语句一般形式为:continue;其作用是结束本次循环(即结束本次循环体的执行)。三、实验内容:1.打印水仙花数(1━━1000)A.程序代码。#include"stdio.h"main(){intn,a,b,c;for(n=1;n<=999;n++){a=n/100;b=(n-a*100)/10;c=(n-a*100-b*10);/*把数n的个位,十位,百位分离出来,a代表百位数,b代表十位数,c代表个位数*/if(a*a*a+b*b*b+c*c*c==n)printf("%d\n",n);/*如果每一位上的数的立方和之等于数本身,即为水仙花数,输出之*/elsecontinue;/*否则,去判断下一个数*/}}B.实验结果
2.求完数(1━━1000)A.程序代码。#include"stdio.h"main(){inti,j,n,k,s;inta[30];/*a[30]是一个整型数组中讨论.此数,将在后绪课程1000,故数组之用途是装一个数的所有因子,由于待判断之最大数是组维数用30,保证足够使用*/for(n=1;n<=1000;n=n+1)/*对于每个数都要进行判断较方便*/,用此种循环{i=0;s=0;for(k=1;k<n;k++)/*对于k从1到n,每次增加1,判断k是否是n的因子*/if(n%k==0){++i;a[i]=k;/*如果n被k除尽了,则k是因子,将其放入a[i]中,i初值为0,每当出现一个因子时continue;,其值自动增1,以便确定相应的下标*/}else,放入s,for(j=1;j<=i;j++)s=s+a[j];/*对于n的所有因子求其和中*/if(s==n)/*如果s与n相等,即一个数的所有因子之和等于数本身此数为完数,输出之*/{printf("%d",n);printf("itsfatorsare:");/*它的因子是for(j=1;j<=i;j++):*/if(j<i)printf("%d,",a[j]);/*逐个输出因子elseprintf("%d",a[j]);printf("\n");/*否则,即s和n不相同时,n不是完数,中断本次*/循环,去判断下一个n是否是完数*/}elsecontinue;}}B.运行结果3.猴子吃桃问题。A.程序代码#include"stdio.h"main(){ints,k,i=1;for(k=100;k<=108;k++)i=i*2+2;printf("s=%d\n",i);}B.程序运行结果4.求两个数的最大公约数和最小公倍数。A.程序代码#include"stdio.h"main(){intm,n,k,maxmn,minmn,gongyue,gongbei;scanf("%d,%d",&m,&n);if(m>n){maxmn=m;minmn=n;}else{minmn=m;maxmn=n;}for(k=minmn;k>=1;k--)if(m%k==0&&n%k==0){gongyue=k;break;}for(k=minmn;k<=m*n;k++)if(k%m==0&&k%n==0){gongbei=k;break;}printf("gongbei=%d\n",gongbei);printf("gongyue=%d\n",gongyue);}B.程序运行结果5.用Xn+1=(Xn+a/Xn)/2求a^(1/2)。A.程序代码#include"stdio.h"#include"math.h"main(){floatx,y0,y1,y2;scanf("%f,%f",&x,&y0);y1=(y0+x/y0)/2;while(fabs(y1-y0)>=1e-5){y0=y1;y1=(y0+x/y0)/2;}printf("y1=%f\n",y1);}B.程序运行结果四、实验总结通过本次实验,基本掌握了三种循环结构的程序设计,对于循环次数不确定的情况,使用while循球和dowhile循环比较合适(当然也可以使用for循环),而对于循环次数确定的情况,使用for循环比较合适(当然也可以使用前两种)构其中的任何一种可以完成任何循环问题的程序设计。。总而言之,C语言的三种循环结如果要想循环不是在进行到底时结束,想循环体中的语句在某种情况下不执行,可以使用附:可以使用break语句中途脱离循环,如果要continue语句。一.实验报告填写要求实验报告填写要求1.实验目的(一共有五部分)掌握……,了解…….,使用……进行程序设计;2.实验原理此部分写有关题目所使用的理论与概念知识;3.实验题目(1)(2)(3)…注:把教师布置的报告
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 矿产承包权转让协议书
- 陈江河合作协议书
- 排放口责任协议书
- 采矿区整合协议书
- 所有权互换协议书
- 车保险调解协议书
- 拉货车出租协议书
- 茶叶地转让协议书
- 美容房售卖协议书
- 王小平离婚协议书
- 夜场水烟合作协议书
- 管道劳务分包协议书
- 2025-2030中国锂电子电池行业市场深度调研及前景趋势与投资研究报告
- 江苏省南京市建邺区2023-2024学年八年级下学期期末考试物理试题【含答案解析】
- 公立医院与民营医院医联体合作协议书(2篇)
- 25《慢性子裁缝和急性子顾客》核心素养公开课一等奖创新教学设计
- 退出联合诊所协议书
- 【初中地理】七年级地理下册全册期末总复习(课件)-2024-2025学年七年级地理课件(人教版2024年)
- 物业管理服务交接方案
- 港股通知识测试题及答案
- 2025年重庆三峰环境产业集团有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论