C程序设计 实验报告 第四章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二题:写程序求 1-3+5-7+…-99+101 的值,画出流程图并写出程序。
第三题: 线面的框图是通过公式 1
精 度 要 求 为 10 -6
Leabharlann Baidu
1 1 1 …来求出 的近似值, 1 ! 2! 3!
。根据框图写出程序。提示:精度公式为
n S n 1 S n
换方案请填空:
【上机内容】
【第一部分上机操作】 :
一、 P4_1 #include<stdio.h> void main() { int s=0,n=1,i=1; while(n<=20) { if(i%2!=0&&i%3!=0&&i%5!=0&&i%7!=0) { n++; s+=i; printf("%d\t",i); } i++; } printf("sum=%d\n",s); }
实验数据:
1600
1681
2500
3600
4900
6400
8100
错误记录:逻辑混乱 g*g==a&&h*h==c&&i*i==e 误输入为 g*g==b&&h*h==d&&i*i==f
八、 P4_8 #include<stdio.h> void main() { int i,j,k,l=1; for(i=0;i<=20;i++) for(j=0;j<=50;j++) { k=100-5*i-2*j; if(k>=0) { printf("%2d%2d%2d",i,j,k); l=l+1; if(l%5==0) printf("\n"); } } }
空
第六题: 下面程序功能是计算 100-1000 之间有多少个数, 其各位数字之和是 5,
请填空
第七题:编程求所有 4 位数,这些数具有以下特点:这数本身是平方数,且其
低 2 位和高 2 位所组成的 2 个 2 位数也是平方数。使用伪码描述算法,画出流 程图,写出程序。
第八题:下面程序的功能是求出用一元人民币兑换一分、二分、五分的所有兑
实验数据:sum=51 错误记录:\
三、 P4_3 #include<stdio.h> #include<math.h> void main() { int i; float e,term,a; e=1; a=1; i=1,term=1; while(term>=1e-6) // int(a*pow(10,-6))!=(a*pow(10,-6)) { a=a*i; term=1/a; e=e+term; i++; } printf("sum=%f\n",e); }
实验数据:
1 11 43 47 sum=858 13 53 17 59 19 61 23 67 29 71 31 73 37 79 41 83
错误记录:忘记 i++;
二、 P4_2 #include<stdio.h> void main() { int i,x,s; i=1; s=0; x=1; while(x<=101&&x>-103) { s+=x; i++; x=2*i-1; if(i%2==0) x=x*(-1); } printf("sum=%d\n",s); }
实验数据:
54
错误记录:\
七、 P4_7 #include<stdio.h> #include<math.h> void main() { int a,c,e,g,h,i; float b,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(g*g==a&&h*h==c&&i*i==e)/*判断是小数或整数*/ printf("%d\t",a);
实验数据:
sum=2.718282
错误记录:刚开始未能正确理解精度的含义
四、 P4_4 #include<stdio.h> #include<stdlib.h> #include<math.h> void main() { int k,i,n; float m,q,l,p; printf("请输入随机点的点数:"); scanf("%d",&n); i=1; k=0; while(i<=n) { m=(float)rand()/RAND_MAX; q=(float)rand()/RAND_MAX; l=sqrt(m*m+q*q); i++; if(l<=1) k++; } p=k*1.000/n*4; printf("圆周率为:%f",p); }
实验数据:3.139087 错误记录:随机数使用方法错误
五、 P4_5 #include<stdio.h> void main() { int i,j; for(i=0;i<10;i++) { j=i*10+6; if(j%3!=0) continue; printf("%d\t",j); } }
部。根据落在这个扇形内部点的比例再乘以 4 即可得到圆周率的近似值。画出 框图,编写程序,分别输出当随机点点数为 10,100,1000,10000,50000 等所求 出的圆周率。并求出当随机点数为多少的时候,求出圆周率精度为小数点后 3 位。
第五题:下面程序用来求 100 以内个位数为 6 且能够被 3 整除的所有数,请填
【上机小结】 :
通过第四章的学习,我理解并掌握了循环结构的基本知识,学会了 C 语言编写 代码时的一些小技巧。
1 n!
第四题:计算圆周率方法中有一种称为蒙特卡罗法。其思路是在平面坐标系的
第一象限中,以(0,0) , (0,1) , (1,0)四个角为顶点的正方形中,产生随机 点。已知由圆心为(0,0) ,起点为(1,0) ,终点为(0,1)的四分之一圆的扇 形区域面积为 s=
1 所以若随机点到圆心距离小于 1 则认为落在这个扇形内 , 4
C 程序设计
实验报告
第四章 循环结构程序设计
班级: 学号: 姓名:
信科 121 12477218 孙剑峰
第四章 循环结构程序设计 【实验目的】
1、学习绘制简单的框图 2、学习循环结构的程序设计
【上机准备】
第一题:求出前 20 个不能被 2,3,5,7 整除的数,并求出这些数的和。画出流
程图并写出程序
实验数据:
6
36
66
96
错误记录:循环判断条件错误,应为 if(j%3!=0)而不是 if(j%3==0)
六、 P4_6 #include<stdio.h> void main() { int i,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; else count++; } printf("%d\n",count); }