C语言程序设计实验报告模版——实验5 循环控制

合集下载

C程序实验报告五 循环控制

C程序实验报告五 循环控制

实验5 循环控制1.实验目的、要求熟练掌握用while语句、do-while语句和for语句实现循环的方法。

掌握在程序设计中应用循环的方法实现一些常用算法,进一步学习调试程序。

2.实验内容(1)编写程序分别应用while语句、do-while语句和for语句,求出100以内所有奇数的和。

while语句:#include "stdio.h"void main(){int i,sum=0;i=0;while(i<=49){sum=sum+2*i+1;i++;}printf("%d\n",sum);}运行此程序:按F2保存源程序,按F9完成一次编译连接,无提示错误,按任意键返回源程序行,按ctrl+F9运行,按alt+F5看结果,结果显示:2500分析:与自己预想结果相同。

在定义变量时可以不赋初值,而在下一个语句中再赋值。

如:定义变量赋初值int i=1,sum=0;先定义变量后赋值int i,sum=0;i=1;使变量自动增减的方法也有多种,一种是赋值法如i=i+1;另一种是使用自加运算如i++。

do-while语句:#include "stdio.h"void main(){int i,sum=0;i=1;do{sum=sum+2*i-1;i++;}while(i<=50);printf("%d\n",sum);}运行此程序:按F2保存源程序,按F9完成一次编译连接,无提示错误,按任意键返回源程序行,按ctrl+F9运行,按alt+F5看结果,结果显示:2500分析:与自己预想结果相同for 语句:#include "stdio.h"void main(){int i,sum=0;for(i=1;i<=50;){sum=sum+2*i-1;i++;}printf("%d\n",sum);}运行此程序:按F2保存源程序,按F9完成一次编译连接,无提示错误,按任意键返回源程序行,按ctrl+F9运行,按alt+F5看结果,结果显示:2500分析:与自己预想结果相同(2)编写程序输出所有的“水仙花数”,“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身,例如:153是一个“水仙花数”,因为153=333351++。

c语言实验05循环嵌套程序设计

c语言实验05循环嵌套程序设计

实验五循环嵌套程序设计班级:学号:姓名:评分:一.【实验目的】1、熟练掌握循环嵌套程序设计。

2、进一步掌握C程序的调试方法和技巧。

二.【实验内容和步骤】1、程序调试题A.目标:进一步学习掌握程序调试的方法和技巧。

B.内容:参照《实验指导》教材P44“5.改错题”,改正程序中的错误,使其实现程序的功能。

(注:程序文件保存在“调试示例”文件夹中,文件名为error05_1.cpp)①调试正确的源程序清单②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。

2、完善程序,并调试运行程序题目(1)求S=1+1/2!+....+1/n!。

程序功能:从键盘上输入一个正整数n,计算s的前n项的和(保留4位小数)。

(注:程序文件保存在“第1题”文件夹中)打开proj1.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。

①调试正确的源程序清单②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。

题目(2)求各位数字的立方和等于它本身的数。

程序功能:从键盘上输入2个正整数m和n(1<=m<=n<=1000),输出m到n之间的所有满足各位数字的立方和等于它本身的数(例如:153=1*1*1+5*5*5+3*3*3)。

(注:程序文件保存在“第2题”文件夹中)打开proj2.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。

①调试正确的源程序清单②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。

题目(3)统计素数并求和。

程序功能:从键盘上输入2个正整数m和n(1<=m<=n<=500),统计并输出m和n之间的素数的个数以及这些素数的和(素数:只能被1和自身整除的正整数,1不是素数,2是素数)。

(例如:23)。

(注:程序文件保存在“第3题”文件夹中)打开proj3.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。

①调试正确的源程序清单②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。

C语言 实验五 循环控制

C语言 实验五  循环控制

实验五循环控制------实验报告(1)源程序:#include<stdio.h>void main(){int p,r,n,m,temp;printf("请输入两个正整数:");scanf("%d,%d,",&n,&m);if(n<m){temp=n;n=m;m=temp;}p=n*m;while(m!=0){r=n%m;n=m;m=r;}printf("最大公约数是:%d\n",n);printf("最小公倍数是:%d\n",p/n);}调试结果:--------------------Configuration: 18.51 - Win32 Debug-------------------- Compiling...18.51.c18.51.obj - 0 error(s), 0 warning(s)运行结果:(2) 源程序:#include<stdio.h>void main(){char c;int letters=0,space=0,digit=0,other=0;printf("请输入一行字符:\n");while((c=getchar())!='\n'){if(c>='a'&&c<='z'||c>='A'&&c<='Z')letters++;else if(c==' ')space++;else if(c>='0'&&c<='9')digit++;elseother++;}printf("字母数:%d\n 空格数:%d\n 数字数:%d\n 其他字符数:%d\n",letters,space,digit,other);}调试结果:--------------------Configuration: 18.52 - Win32 Debug-------------------- Compiling...18.52.c18.52.obj - 0 error(s), 0 warning(s)运行结果:(3) 源程序:#include<stdio.h>#include<math.h>void main(){float x1,x0,f,f1;x1=1.5;do{x0=x1;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x1=x0-f/f1;}while(fabs(x1-x0)>=1e-5);printf("The root of equation is %5.2f\n",x1);}调试结果:--------------------Configuration: 18.53 - Win32 Debug-------------------- Compiling...18.53.c18.53.obj - 0 error(s), 0 warning(s)运行结果:分析:x1赋值的改变不影响最后所求的根的值,只是加大了运算次数.(4) 源程序:#include<stdio.h>void main(){int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2;x2=x1;day--;}printf("total=%d\n",x1);}调试结果:--------------------Configuration: 18.54 - Win32 Debug-------------------- Compiling...18.54.c18.54.obj - 0 error(s), 0 warning(s)运行结果:修改后:#include<stdio.h>void main(){int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+2)*2;x2=x1;day--;}printf("total=%d\n",x1);}--------------------Configuration: 18.54 - Win32 Debug-------------------- Linking...18.54.exe - 0 error(s), 0 warning(s)。

C语言的循环控制编程实验报告

C语言的循环控制编程实验报告

实验5 循环控制1.实验目的、要求熟悉掌握用while语句、do_while语句和for语句实现循环的方法。

掌握在程序设计中应用循环的方法实现一些常用算法,进一步学习调试程序。

2.实验内容(1)编写程序分别用while语句、do_while语句和for语句,求出100以内所有奇数的和。

#include "stdio.h"int main(){int i=1,s=0;while(i<=100){s=i+s;i=i+2;}printf("s=%d\n",s);return(0);}运行结果:屏幕显示:s=2500结果分析:此程序是用while循环求100以内所有奇数的和。

把第一个奇数1作为初值赋给i,执行while语句时,先判断表达式i<=100是否为真,1〈=100为真,所以执行循环体的语句。

循环体由一个复合语句构成,i〉100是循环结束的条件,循环体中i=i+2是最终导致i〉100的语句。

s=i+s语句实现了奇数和的计算。

每执行完一次i=i+2,都要重新判断i<=100是否为真,直到为假(i〉100)循环结束,执行循环下面的语句。

#include "stdio.h"int main(){int i=1,s=0;do{s=s+i;i=i+2;}while(i<=100);printf("s=%d\n",s);return(0);}运行结果:屏幕显示:s=2500结果分析:这个程序是用do_while语句实现上述内容。

与上一程序的区别是:do_while语句是这样执行的,先执行一次指定的循环体语句,然后判别表达式i<=100的值,当为真则返回执行循环体语句。

如此反复,直至表达式值为0。

#include "stdio.h"int main(){int i,s;for(i=1,s=0;i<=100;i=i+2)s=i+s;printf("s=%d\n",s);return(0);}运行结果:屏幕显示:s=2500结果分析:此程序是用for语句实现上面的求和计算。

实验五 循环控制语句及嵌套 实验报告

实验五   循环控制语句及嵌套 实验报告

XXX大学软件类实验报告课程名称:C语言程序设计学号:姓名:班级:指导教师:开课学期:学院:XXX大学教务处4. 循环嵌套的使用。

四、实验过程及内容:(运行结果请抓图到对应题目的下方)1. 程序填空题。

以下程序的功能是计算100以内所有奇数之和,通过阅读下面程序后将其补充完整。

上机运行程序,写出程序的运行结果。

实验结果:2. 先分析以下程序,写出运行结果,再上机检验。

实验结果:3. 程序填空题。

若用0~9之间不同的三个数构成一个三位数,以下程序将统计出有多少种这样的三位数。

填空使程序完成相应功能。

实验结果:4. 程序改错题。

爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,则最后剩下1阶;若每步跨3阶,则最后剩下2阶;若每步跨5阶,则最后剩下4阶;若每步跨6阶,则最后剩下5阶;只有在每步跨7阶,最后才正好1阶不剩。

实现相应功能的程序如下,找出其中存在的语法和逻辑错误并改正,然后上机验证。

实验结果:5. 编程题。

百马百担问题。

有100匹马驮100担货,大马驮3担,中马驮2担,2匹小马分驮1担,编程计算大、中、小马各有多少匹(大、中、小马的匹数均不得为0)。

输出格式:big=1,mid=2,small=3;实验代码:实验结果:6.编程题。

打印出所有的“水仙花数”。

所谓“水仙花数”是一个3位数,其各位数字的立方之和等于该数本身。

例如153=13+53+33。

实验代码实验结果:7.根据下式求s的值(要求使用循环实现):说明:结果保留4位小数。

输出结果的形式为:s=12.3456。

实验报告---循环控制

实验报告---循环控制

闽江学院地理科学系《C语言程序设计》实验报告实验题目:循环控制姓名:方园成学号:120090503107所用主要软件:Turbo C 2.0学院闽江学院系:地理科学系专业:年级:09课程C语言程序设计实验日期:201 0年10 月 1 日专业班号:09(1)班___ ___ 组别:___________ 交报告日期:201 0 年10 月2日姓名:方园成学号:120090503107 报告退发:(订正、重做)指导教师签字:冯世基成绩:实验一一、实验目的(1)掌握各种循环结构,并能够加以区分;(2)学会各种循环结构的应用;二、实验内容P129(1)6.6 输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。

例如,153是一水仙花数,因为153=13+53+33。

(2)6.8 有一分数序列2/1,3/2,5/3,8/5/,13/8,21/13,......求出这个数列的前20项之和。

三、实验环境实验楼计算机网络教室,Windows XP sp2中文版操作系统并安装Turbo C 2.0。

四、实验步骤1、根据题目要求写出相应的源程序。

2、编绎。

3、调试运行。

4、查看运行结果。

五、源程序与运行结果6.6main(){int i,j,k,n;for(n=100;n<1000;n++){i=n/100;j=n/10-i*10;k=n%10;if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) printf("n=%d\n",n);}}6.8main(){int n,t,number=20;float a=2;b=1;s=0;for(n=1;n<=number;n++){s=s+a/b;t=a,a=a+b,b=t;}printf("s=%9.6f\n",s);}六、出现问题及解决方法七、实验心得通过此次实验,我掌握了比较常见的循环结构及其运用,日后我会通过上些练习来强化自己,做到更深入的了解。

C语言实验报告5——循环结构程序设计

C语言实验报告5——循环结构程序设计

学生实验报告学号 : 日期 : 2014-06-22系别计算机科学与技术专业计算机科学与技术(师)班级姓名课程名称C语言程序设计课程类型专业课学时数2实验名称循环结构程序设计实验目的掌握C语言三种循环结构语句格式;理解C语言三种循环结构控制语言的执行过程;学习应用C语言三种循环结构控制语句结构构造程序;积累环境下进行程序调试经验;实验要求:实验后写实验报告。

实验内容1、输入n个数,从中找出最大数。

(n值从键盘输入);2、补充教材138页6.2题1_3三个程序,并上机运行,结合程序功能分析运行结果;3、采用C语言的三种循环控制语句设计实现教材6.5题;4、完成教材42页实验题的“国王承诺问题”。

1、设计的源程序:/*计算n个正整数中最大值*/#include "stdio.h"main(){int a,i,n,max;i=2;max=0;printf("Input two numbers:");scanf("%d%d",&n,&a); /*从键盘输入n个正整数*/while(i<=n){scanf("%d",&a);max=a>max? a:max;i++;}printf("max=%d\n",max);}运行结果:当输入五个正整数时,程序最后输出了这五个数中的最大值教材138页6.2题:(1)计算奇数求和,补充后第一个源程序为:#include "stdio.h"main(){int i,sum = 0;for (i = 1;i<=101;i += 2){sum += i;}printf("sum = %d\n",sum);}运行结果:分析:当输入50时,就得到了前50个奇数的和,与理论符合,即为2601。

(2)计算1*2*3+3*4*5+...+99*100*101的值补充后的第二个源程序为:#include "stdio.h"main(){long i;long term,sum = 0;for (i = 1;i <= 99;i = i + 2){term = i * (i + 1) * (i + 2);sum = sum + term;}printf("sum = % ld",sum);}运行结果:(3)计算a+aa+aaa+...+aa...a(n个a)的值,n和a的值由键盘输入。

c语言程序设计 循环控制 实验报告

c语言程序设计 循环控制 实验报告

广州大学学生实验报告五一、实验目的(1)熟练掌握for、while和do …while语句实现循环程序设计。

(2)理解循环条件和循环体,以及for、while和do …while语句的相同及不同之处。

二、实验设备实验设备要求每个学生一台电脑,并需装有VC++ 6.0程序。

三、实验内容(一)编写程序:求出 1,1+2,1+2+3,……数列中前n项的值。

(文件名:ch05_1.cpp)要求输入输出示例:Enter a number: 61 3 6 10 15 21(二)编写程序:从键盘上输入若干学生的成绩,统计并输出最高分和最低分成绩,当输入负数时结束输入。

(文件名:ch05_2.cpp)要求输入输出示例:Please input scores:65.5 86.4 74 92 67 91 54.5 -1Max=92.00Min=54.50(三)编写程序:有100匹马,要驮100担货物,其中,1匹大马可以驮3担,1匹中马可以驮两担,两匹小马可以驼1担,请问,大马、中马和小马可以有多少种组合。

(文件名:ch05_3.cpp)要求输入输出示例:大马2匹;中马30匹;小马68匹,大马5匹;中马25匹;小马70匹,大马8匹;中马20匹;小马72匹,大马11匹;中马15匹;小马74匹,大马14匹;中马10匹;小马76匹,大马17匹;中马5匹;小马78匹,共有6种驮法(四)编写程序:已知某正整数等差数列的前4项之和为10,前4项之积为24,经计算可得此等差数列的前六项为:1 2 3 4 5 6,前六项之和为:26。

请问:若某数列的前4项之和是26,前4项之积是880。

请输出此正整数等差数列的前六项与前六项之和(文件名:ch05_4.cpp)要求输出示例:1,2,3,4,5,6数列的前6项的和:21提示:(1)等差数列由首项和差值两项构成,用整型变量工a,d分别记录该两项。

(2)利用for循环进行求解,并且需要满足数列前4项之和为26。

C语言程序设计第五次实验报告

C语言程序设计第五次实验报告

C语⾔程序设计第五次实验报告C程序设计实验报告实验项⽬:C语⾔程序设计第五次实验报告姓名:彭佳乐实验地点:家中实验时间:2020年4⽉21⽇⼀、实验⽬的与要求1、熟练地掌握函数的定义⽅法和调⽤规则。

2、掌握再 C语⾔程序种主调函数和被条⽤函数之间进⾏数据传递的规则。

3、了解函数的返回值及其类型,并正确使⽤它4、了解局部变量和全局变量的作⽤城及它们与存储分类的关系,理解变量的存在性和可见性的概念5、练习递归函数的使⽤⼆、实验内容6.3.1.1 已知三⾓形的三边,求⾯积6.3.1.2 求N的阶乘6.3.1.3 求两个整数的最⼤公约数6.3.1.4 打印出指定的图形6.3.2.1 求500以内的所有亲密数对6.3.3.1 编写计算x的y次幂的递归函数6.3.3.2 编写计算学⽣年龄的递归函数1、实验练习:6.3.1-1 已知三⾓形的三边,求⾯积(1)问题的简单描述:编写程序,从键盘输⼈三⾓形的3条边,调⽤三⾓形⾯积函数求出其⾯积,并输出结果。

(2)实验代码:#include<math.h>#include<stdio.h>float area(float a,float b,float c){float s,p,area;s=(a+b+c)/2;p=s(s-a)(s-b)*(s-c);area=sqrt(p);return(area);}main(){float a,b,c,ts;printf("请输⼊三⾓形的三条边a,b,c:\n");scanf("%f%f%f",&a,&b,&c);ts=area(a,b,c);if(a+b>c&&a+c>b&&b+c>a)printf("area=%f\n",ts);elseprintf("Data error!");}(3)问题分析:求三⾓形的⾯积采⽤的是浮点型,具有返回值,刚开始写成了调⽤函数后来发现不对将函数调⽤改成函数表达式带⼊程序可以正常运⾏2、实验练习:6.3.1-2 求N的阶乘(1)问题的简单描述:编写函数,求出从主调函数传来的数值i的阶乘值,然后将其传回主调函数并输出(2)实验代码:#include<stdio.h>#define N 5long function(int i)static long f=1;f=f*i;return f;}main(){long product;int i;for(i=1;i<=N;i++){product=function(i);printf("%d的阶层为%d\n",i,product);}}(3)问题分析:定义N为五的时候很纠结忘了define函数,后来问了同学后解决了3、实验练习:6.3.1-3 求两个整数的最⼤公约数(1)问题的简单描述:编写程序,从键盘输⼊两个整数,调⽤gdc()函数求他们的最⼤公约数,并输出结果。

大一上期C语言实验报告5 循环控制语句

大一上期C语言实验报告5 循环控制语句

大一上期C语言实验报告5 循环控制语句程序设计基础实验报告实验5成都工业学院・计算机工程学院《程序设计基础》实验报告实验名称学院姓名任课老师实验5 循环控制语句计算机工程学院专业班级学号实验时间计算机科学与技术1班 90分钟 1. 实验目的(1)熟练掌握while语句、do?while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用三种循环语句实现循环结构;(2)掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧;(3)进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。

2. 实验内容(1)输出两个整数m和n,求它们的最大公约数和最小公倍数。

要求:①画出算法流程图,从键盘输入m和n;②对负数和零可不做考虑;③运行程序,对m>n、m(2)输出1000以内最大的10个素数以及它们的和。

要求:① 由于偶数不是素数,可以不对偶数处理;② 画出算法流程图;③ 输出形式为:素数1+素数2+素数3+...+素数10=总和值。

??21111(3)根据公式=2+2+2+?+2,求出π的值 6123??要求:① 画出算法流程图② 以变量pi表示?,并将其定义为单精度类型,变量n定义为整形③ 计算当n的取值分别为20、50、100、200时的?的值④ 输出?值以及总的项数n,输出格式为“n=值,pi=值” (4)输入一串字符(以回车键结束),统计其中数字、大写字母、小写字母以及其他字符的个数。

要求:① 画出算法流程图,通过键盘输入字符串;② 在输出字符串之前给出相应提示; 1 程序设计基础实验报告实验5 ③ 按照数字、大写字母、小写字母及其他字符数的顺序输出结果 3. 流程图4. 源程序(1)求最大公约数和最小公倍数 #include void main() {intm,n,a,b,d,i=2; printf(\two number:\ scanf(\ a=(m>n)?m:n; b=(m>n)?n:m; d=a; while((a%b)!=0) {a=d*i; i++;} printf(\ (2)求1000内最大的10个素数之和#include void main() {int n,r,i,k=0,a[10],sum=0; for(n=997;n>0;n-=2){for(i=2;i<=n-1;i++) {r=n%i; if(r==0) break;} if(i>=n){a[k]=i;sum=sum+a[k];k++; if (k==10)break; continue;} else continue;} printf(\素数%d+素数%d+素数%d+素数%d+素数%d+素数%d+素数%d+素数%d+素数%d+素数%d+=%d\\n\8],a[9],sum);} 2 程序设计基础实验报告实验5 π值(3)计算#include #include void main() {int n,i;float pi=0; scanf(\i=n;do{pi+=1/pow(n,2);n--;} while(n!=0); pi=sqrt(6*pi); printf(\(4)统计字符串中各种类型数据的个数 #include void main() {char ch[200];int i,a=0,b=0,c=0,d=0; gets(ch); for(i=0;ch[i]!='\\0';i++) {if(ch[i]>='0'&&ch[i]<='9')a++; elseif(ch[i]>='A'&&ch[i]<='Z')b++; else if(ch[i]>='a'&&ch[i]<='z')c++; else d++;} printf(\5. 运行结果(1)求最大公约数和最小公倍数(2)求1000内最大的10个素数之和(3)计算π值 3 程序设计基础实验报告实验5 (4)统计字符串中各种类型数据的个数 6. 出现问题及解决办法(1)求最大公约数和最小公倍数时,为定义变量d,直接写成while((a%b)!=0){a=a*i; i++;}运算结果出错,原因是a的值一直在变化,后来就增加变量d,写成while((a%b)!=0){a=d*i;i++;},运算就正确了。

C语言程序设计—循环语句—实验报告

C语言程序设计—循环语句—实验报告

实验报告专业软件工程班级X 班学号_ _ 姓名X X X实验日期:2014年10月16日报告退发(订正、重做)课程C程序设计实验实验名称循环语句一、实验目的①了解和掌握C语言中的循环语句;②掌握各类循环语句的区别和联系;③掌握break以及continue的用法;二、实验环境(描述实验的软件、硬件环境)①软件环境:windows xp/win7等操作系统,Microsoft Visual C++ 6.0编译器;②硬件环境:PC机一台三、实验内容、步骤和结果分析题目一:编程找出用户输入的一串数值中的最大数。

要求:(1)需要提示用户一个一个地输入数据;(2)当用户输入一个不大于0的数值时,表示输入结束。

此时应输出一串数值中的最大值;#include<stdio.h>float main(){float number,largest;printf("Please enter a positive number:");loop:scanf("%f",&largest);if(largest<=0){printf("Sorry,you enter a wrongful number!\nThe first number must be a positive number!\nPlease try again:");goto loop;}/*引导用户第一个数字输入为正数,以便正确执行本程序*/for(number=1;number>0;){printf("Please continue to enter a number:");scanf("%f",&number);if (number>=largest){largest=number;}printf("The largest number entered is:%.2f\n",largest);return 0;}题目二:编程程序计算两个正整数的最大公约数(GCD)要求:①提示用户输入两个数;②输出最大公约数。

实验5 循环控制

实验5 循环控制

电子信息工程学院2006级通信工程《C语言程序设计》实验报告姓名:杨人和学号:222012316210014实验序号:实验5实验项目:循环控制实验目的:1.熟悉掌握用while语句、do-while语句和for语句实现循环的方法。

2.掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。

3.进一步学习调试程序。

实验内容:1.输入两个正整数m和n,求它们的最大公约数和最小公约数。

在运行时,输入的值m>n,观察结果是否正确。

再输入时,使m<n,观察结果是否正确。

修改程序,不论m和n为何值(包括负整数),都能得到正确结果。

(程序代码.........)修改前修改后(实验运行结果)修改前修改后文字母、空格、数字和其他字符的2.输入一行字符,分别统计出其中的英个数在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其他字符的个数。

(程序代码.........)1.2.(实验运行结果)1.2.3.用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。

在得到正确结果后,请修改程序使所设的x初始值由1.5改变为100、1000、10000,再运行,观察结果,分析不同的x初值对结果有没有影响,为什么?修改程序,使之能输出迭代的次数和每次迭代的结果,分析不同的x初始值对迭代的次数有无影响。

(程序代码.........)1.2.3.4.(实验运行结果)1.2.3.4.不同的x初始值对迭代结果无影响4.猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第二天早上又将剩下桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天的一半零一个。

到第10天早上再想吃时,见只剩下一个桃子。

求第一天共摘了多少个桃子。

在得到正确结果后,修改题目,改为猴子每天吃了前一天剩下的一半后,再吃两个。

请修改程序并运行,检查结果是否正确。

(程序代码.........)修改前修改后(实验运行结果)修改前修改后实验总结:第一个题里面,更改程序后语句中的非语句按数学应当是m<0&&n<0,而程序的运行结果感觉上其非语句为m<0||n<0,有点困惑,是我理解错了还是计算机语言里面就是这样的。

循环程序设计实验报告

循环程序设计实验报告

学号:0740303104姓名:雷凤循环程序设计实验报告一、实验目的:1、了解和掌握比较循环程序的组成部分,重复控制指令的功能、作用和方法。

2、学会循环程序设计的方法。

3、学习汇编语言输出输入语句的设计。

二、实验要求:1、具体了解和掌握循环程序的组成部分,重复控制指令的使用和在使用时应注意的问题2、学习循环序设计的一般方法。

三、实验内容1、实验任务设有N个学生的某科成绩(百分制),已按学号的次序存放在以STUD 为首址的字单元数组中,现要求按成绩的高低记入名次,并把名次填入成绩所在的字单元的高字节中。

字单元的格式为2、实验的原理这个实验要用循环的嵌套,内外循环都循环6次,刚开始时将所有的名次都置1,外循环从第一个成绩开始依次与每一个学生(包括自己)的成绩比较大小,要是小于,相应的名次就加1,再将第二个成绩与所有的分数依次比较大小,一直循环6 次,就能得出名次排序了,将相应的名次分别保存在dl 低字节中,也便于输出名次。

3、程序设计流程图开始BX<-STUD存区首址CX<-外循环次数DL<-1AL<-[BX]CX<-内循环次数Slv-STUD存区首址DL<-DL+1SI<-SI+2[BX+1]<-DLBX<-BX+2Slv-SI+2结束A:INC SIINC SILOOP LOP2POPCXmov[BX+1], dl ; 把结果保存到高地址INC BX; 修改地址INC BX 四、实验步骤1、编辑源程序,建立一个以后缀为 .ASM 的文件 .DATASSEGMENT; 此处输入数据段代码STUDDW78,65,89,90,58,99DATASENDSSTACKSSEGMENT; 此处输入堆栈段代码STACKSENDSCODESSEGMENTASSUMCES:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AX; 此处输入代码段代码LEABX,STUDLOP1:PUSHCXMOVdl,1 ;dl 用来存放名次MO\AL,[BX];BX 的内容送给AL MOVCX,6取偏移地址 LOP2:CMPAL,[SI]JL LOP3JMP A; 比较大小 ; 小于就转 ;LOOP LOP LOP3:INC dl ; 小于,名次加 1; 修改地址add dl,30h ; 输出movah,02hint 21hLOOP LOP1 ; 回到外面的循环MOVAH,4CHINT 21HCODESENDSENDSTART2、汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。

C语言程序设计 控制结构程序设计 实验报告

C语言程序设计 控制结构程序设计 实验报告

西南石油大学实验报告一、实验目的1、学会正确使用逻辑运算符和逻辑表达式、关系运算符和关系表达式;2、熟练掌握if语句和switch语句;3、熟练掌握三种循环语句:while、do-while和for的使用。

4、掌握break和continue语句在循环中的控制作用。

5、掌握利用循环语句求解一些常用算法的方法。

二、实验环境1、硬件环境:微型计算机一台2、软件环境:Windows XP操作系统、VC6.0三、实验内容菜单设计:输出如下图所示的菜单,实现菜单命令的选择。

*************************************** 1---成绩输入** 2---查找最高分** 3---查找最低分** 4---计算平均成绩** 5---成绩输出** 6---成绩排序输出** 0---退出***************************************输入0-6之间的任意整数,实现对应菜单命令的输出。

1、用户输入1时,实现输入3个学生的成绩。

2、用户输入2时,查找并显示出最高分。

3、用户输入3时,查找并显示出最低分。

4、用户输入4时,计算并显示出平均成绩(保留1位小数)。

5、用户输入5时,输出所有成绩和成绩总和。

6、用户输入6时,对成绩排序并输出排序结果。

7、用户输入0时,退出程序。

注:清屏函数是system("cls"),结束程序运行函数是exit(0),用户输入0时才结束程序,不输入0则保持运行状态。

先运行以下程序代码,体会清屏和退出程序的功能#include<stdio.h>#include<stdlib.h>void main(){printf("测试清屏\n");system("pause");system("cls");printf("结束程序运行\n");system("pause");exit(0);printf("***不会显示***\n");}四、项目分析与设计(分析问题,给出解决方法及流程图)五、程序实现及运行结果(程序代码,运行结果截图)六、实验小结(遇到的问题,解决的方法,意见和建议)#include<stdio.h>#include<stdlib.h>void main(){int x,i,j;float a[3],max,min,sum=0,ave=0,t,fen,b[3];while(1){system("cls");printf("1---成绩输入\n");printf("2---查找最高分\n");printf("3---查找最低分\n ");printf("4---计算平均成绩\n");printf("5---成绩输出\n");printf("6---成绩排序输出\n");printf("0---退出\n");scanf("%d",&x);switch(x){case(1):{for(i=0;i<3;i++){ scanf("%f",&fen);a[i]=fen;}printf("%f",a[i]);}break;case(2):{max=a[0];for(i=0;i<3;i++){if(max<a[i])max=a[i];}printf("max=%f",max);system("pause");}break;case(3):{min=a[0];for(i=0;i<3;i++){if(min>a[i])min=a[i];}printf("min=%f",min);system("pause");}break;case(4):{for(i=0;i<3;i++)sum+=a[i];ave=sum/i;printf("ave=%.1f\n",ave);system("pause");}break;case(5):{for(i=0;i<3;i++){sum+=a[i];printf("%f\n",a[i]);}printf(“sum=%f”,sum);system("pause");}break;case(6):{for(i=0;i<2;i++){for(j=i+1;j<3;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}for(i=0;i<3;i++)printf("%f\n",a[i]);system("pause");}break;case(0):exit(0);}}}。

c语言实验

c语言实验

c语言实验常熟理工学院《C语言程序设计》实验指导与报告书______学年第____ 学期专业:___________________________________________ 学号:___________________________________________ 姓名:___________________________________________ 实验地点:___________________________________________ 指导教师:___________________________________________计算机科学与工程学院2014实验5 循环结构程序设计(1)5.1 实验目的1.掌握while 、do …while 循环语句的使用方法。

2.掌握break 语句在循环语句中的作用。

3.熟悉递推、迭代等常规算法。

5.2 示例程序【实验5.1】使用下面公式求π的近似值,要求直到某一项的绝对值小于10-6为止。

+-+-=71513114π程序代码:#include #include int main() {int f; float pi,t,n;pi=0; f=1; t=1; n=1.0; /* 变量赋初值 */ while(fabs(t)>1e-6) /* 满足条件进入循环 */ {pi=pi+t; /* 累加一项 */ n=n+2; /* 分母增加2 */ f=-f; /* 改变累加项的负号 */ t=f/n;/* 求出下一累加项 */} pi=pi*4;printf("pi=%10.6f\n",pi); return 0; }说明:1.fabs(t)用于求浮点数t 的绝对值,由于fabs()是数学库函数,程序中需要使用#include包含文件。

2.这种题目要分析累加前后项之间的关系,本题中后一项的分母比前一项大2。

c语言实验5 循环结构程序设计2

c语言实验5 循环结构程序设计2

(2)实验5 循环结构程序设计2011-04-16 23:59:00起止时间:2011-04-05 20:00:00至一、实验目的 continue语句的作用、区别及使用方法;、掌握循环结构中break、1、熟悉并掌握利用嵌套的循环结构来解决实际问题,理解内、外层循环执行的2 具体过程;、熟悉并掌握循环结构程序的调试方法(多个断点的设置、断点间的跳转)。

3二、实验内容填空题1.以下程序的功能是:输入年、月、日,输出该日是该年的第几天。

#include<stdio.h>int main()int year,month,day,days,i,d; {printf(input year,month,day);scanf(%d,%d,%d,&year,&month,&day);days=0;for(i=1;i < month ;i++)【1】) switch( {{ case 1:case 3:case 5:case 7:case 8:case 10:case 12:d=31;break;case 4:case 6:case 9:case 11:d=30; break;case 2:if(year%4==0 && year_x0010_0!=0 || year@0==0)d=29;elsed=28;}【2】;}printf(%d年%d月%d日是第%d天\n,year,month,day, 【3】);return 0;}输出效果如下:教材P92课后习题三(2):展开式求和。

2.【问题描述】教材P92课后习题三(2):展开式求和。

【输入形式】输入x的值。

【输出形式】输出s的值。

【样例输入】【样例输出】3. 菱形图像显示问题:输入一个正奇数([5,21]区间内),显示由*组成的菱形图像。

【问题描述】输入一个正奇数([5,21]区间内),显示由*组成的菱形图像。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2)根据分析结果写出源程序
#include <stdio.h>
void main( )
{
int i,j ;
/*定义循环控制变量*/
for(i=1;i<=4;i++)
{
for(j=1;j<=4-i;j++)
prinf(" ");
/*输出4-i个空格*/
for(j=1;j<=2*i-1;j++)
printf("*");
提示:循环条件可在while语句后的括号中出现,也可以用break语句控制。
2)根据分析结果写出源程序。
程序一:
#include<stdio.h>
void main( )
{
int x,xo=0,xj=0 ;
/*将偶数个数xo与奇数个数xj赋0值*/
scanf("%d",&x);
/*先输入一个整数*/
{
int x,xo=0,xj=0 ;
/*在循环内部用break语句控制循环条件*/
while(1)
{
scanf("%d",&x);
if(x=='\n')break ;
if(x%2==0)xo=xo+1;
else xj=xj+1 ;
}
printf("xo:%d,xj:%d",xo,xj);
}
分析:
(2)打印如下图案
printf("\n");
}
}
程序结果如下图:
四、实验心得(体会):
通过本次C语言上机实验,我对循环结构程序设计的理解如下:
(1)本实验是练习循环控制,要求要熟悉掌握用while语句,do-while语句和for语句实现循环的方法。在使用这几个实现循环的语句时要特别注意:
在使用while时,要注意循环体如果包含一个以上的语句,应该用花括号括起来,以复合语句形式出现。在循环体中就有使循环趋向于结束的语句,否则就成为死循环,不能跳出循环。
(4)掌握用循环实现一些常用算法(如穷举、迭代、递推等)。
二、实验内容:
(1)输入一组整数,统计其中奇数偶数个数,直到遇到回车为止。
(2)印如下图案

***
*****
*******
三、实验步骤:
编程序并上机调试运ቤተ መጻሕፍቲ ባይዱ。
(1)输入一组整数,统计其中奇数偶数个数,直到遇到回车为止。
1)算法分析:可设一整型变量x,循环的输入整数的值,若x%2==0即为偶数,否则是奇数。
在使用do-while时,要注意do-while的执行是先执行一次特定的循环体语句,然后判别表达式,,当表达式的值为真时,再返回重新循环体语句。这是与while语句最大的区别。
在使用for语句时,要特别注意前两个表达式后一定要用分号作分隔符且当省略表达式时,一定不能省略分号。
在使用循环的方法实现一些常用算法,如穷举、迭代、递推等应注意这些方法所使用时要理解其运算步骤,从而更加高效的使用这些方法。

***
*****
*******
1)算法分析:从图案中找出行数,空格数,星号数间的关系如下:
行数空格数星号数
1 3 1
2 2 3
3 1 5
4 0 7
I 4-i 2*i-1
可用双重循环控制整个图案的输出。若用循环变量i,j分别控制外层,内层循环,则i的取值从1到4,表示行数,在每行中要确定前面空格个数和星号个数,空格个数是4-i,星号个数是2*i-1。
/*输入不是回车时循环*/
while(x!='\n')
{
if(x%2==0)xo=xo+1 ;
else xj=xj+1 ;
scanf("%d",&x);
}
/*循环输入其余整数*/
printf("xo:%d,xj:%d",xo,xj);
}
程序二:
#include<stdio.h>
void main( )
在实验中还要注意的就是输入程序的正确,调试时及时发现并改正错误。
凯里学院C语言程序设计实验报告
×××××专业××年级××班,学号××××××姓名××成绩
合作者实验日期年月日
指导教师评阅日期年月日
实验五循环结构程序设计
一、实验目的:
(1)熟练掌握for语句、while语句、do-while语句实现循环的方法;
(2)理解循环嵌套及其使用方法;
(3)掌握break语句与continue语句的使用;
相关文档
最新文档