班级:信科121学号:8C程序设计实验报告第四章循环结构程序设计
第四章循环结构程序设计
【实验目的】
1、学习绘制简单的框图
2、学习循环结构的程序设计
【上机准备】
第一题:求出前20个不能被2,3,5,7整除的数,并求出这些数的和。画出流程图并写出程序
第二题:写程序求1-3+5-7+…-99+101的值,画出流程图并写出程序。
第三题:线面的框图是通过公式1111…来求出的近似值,1!2!3!精度要求为10-6。根据框图写出程序。提示:精度公式为nSn1Sn
第四题:计算圆周率方法中有一种称为蒙特卡罗法。其思路是在平面坐标系的第一象限中,以(0,0),(0,1),(1,0)四个角为顶点的正方形中,产生随机点。已知由圆心为(0,0),起点为(1,0),终点为(0,1)的四分之一圆的扇形区域面积为s=1所以若随机点到圆心距离小于1则认为落在这个扇形内,4
部。根据落在这个扇形内部点的比例再乘以4即可得到圆周率的近似值。画出框图,编写程序,分别输出当随机点点数为10,100,1000,10000,50000等所求出的圆周率。并求出当随机点数为多少的时候,求出圆周率精度为小数点后3位。
第五题:下面程序用来求100以内个位数为6且能够被3整除的所有数,请填空
第六题:下面程序功能是计算100-1000之间有多少个数,其各位数字之和是5,请填空
第七题:编程求所有4位数,这些数具有以下特点:这数本身是平方数,且其
低2位和高2位所组成的2个2位数也是平方数。使用伪码描述算法,画出流程图,写出程序。
第八题:下面程序的功能是求出用一元人民币兑换一分、二分、五分的所有兑换方案请填空:
【上机内容】
【第一部分上机操作】:
一、P4_1
includevoidmain(){ints=0,n=1,i=1;
while(n<=20)
if(i%2!=0i%3!=0i%5!=0i%7!=0){
n++;
s+=i;printf("%d ",i);
}i++;
}printf("sum=%d
",s);
实验数据:
111131719232931374143475359616771737983sum=858
错误记录:忘记i++;
二、P4_2
includevoidmain(){inti,_,s;
i=1;
s=0;
_=1;
while(_<=101_>-103)
s+=_;
i++;
_=2i-1;
if(i%2==0)
_=_(-1);
}printf("sum=%d
",s);
实验数据:sum=51
错误记录:
三、P4_3
includeincludevoidmain(){inti;floate,term,a;e=1;a=1;i=1,term=1;while(term>=1e-6)int(apow(10,-6))!=(apow(10,-6)){a=ai;term=1/a;e=e+term;i++;}printf("sum=%f
",e);}
实验数据:sum=2.718282错误记录:刚开始未能正确理解精度的含义
四、P4_4
includeincludeincludevoidmain(){intk,i,n;floatm,q,l,p;printf("请输入随机点的点数:");scanf("%d",n);i=1;k=0;while(i<=n){m=(float)rand()/RAND_MA_;q=(float)rand()/RAND_MA_;l=sqrt(mm+qq);i++;if(l<=1)k++;}p=k1.000/n4;printf("圆周率为:%f",p);}
实验数据:3.139087
错误记录:随机数使用方法错误
五、P4_5
includevoidmain(){inti,j;for(i=0;i<10;i++){j=i10+6;if(j%3!=0)continue;printf("%d ",j);}}
实验数据:错误记录:循环判断条件错误,应为if(j%3!=0)而不是if(j%3==0)
六、P4_6
includevoidmain(){inti,s,k,count=0;for(i=100;i<1000;i++){s=0;k=i;while(k>=10){s=s+k%10;k=k/10;}if(s!=5)continue;elsecount++;}printf("%d
",count);}
实验数据:54
错误记录:
七、P4_7
includeincludevoidmain(){inta,c,e,g,h,i;floatb,d,f;for(a=1000;a<=9999;a++){b=sqrt(a);g=b;
c=a%100;/低两位/d=sqrt(c);h=d;e=(a-c)/100;/高两位/f=sqrt(e);i=f;if(gg==ahh==cii==e)/判断是小数或整数/printf("%d ",a);}}
实验数据:16001681250036004900008100错误记录:逻辑混乱gg==ahh==cii==e误输入为gg==bhh==dii==f
八、P4_8
includevoidmain(){inti,j,k,l=1;for(i=0;i<=20;i++)for(j=0;j<=50;j++){k=100-5i-2j;if(k>=0){printf("%2d%2d%2d",i,j,k);l=l+1;if(l%5==0)printf("
");}}}
【上机小结】:
通过第四章的学习,我理解并掌握了循环结构的基本知识,学会了C语言编写代码时的一些小技巧。