好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

10页
  • 卖家[上传人]:xian****812
  • 文档编号:324498971
  • 上传时间:2022-07-14
  • 文档格式:DOC
  • 文档大小:114.02KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 4.第三次实验C语言程序设计 实验报告专业 计算机科学与技术 班级 信安1302班 日期 成绩 实验组别 第 3 次实验 流程控制实验 指导教师 学生姓名 学号 同组人姓名 实验名称 流程控制实验 4.1实验目的1.掌握复合语句,if语句,switch语句的使用,熟练掌握for,while,do-while三种基本的循环控制语句的使用,掌握重复循环技术,了解转移语句与标号语句2.掌握运用for,while,do-while语句来编写程序3.练习转移语句和标号语句的使用4.使用集成开发环境的调试功能:单步执行,设置断点,观察变量值4.2实验内容(一)在不用数组的情况下求n个数的最大值最小值和平均值源程序如下shangji3\chengxu14#include int main(){ int max,min,n,x,i; float s; s=0;i=1; printf("enter n:"); scanf("%d",&n); printf("enter the first number:"); scanf("%d",&x); s=s+x; max=x;min=x; do { scanf("%d",&x); s+=x; if(x>max) max=x; else if(x

      步骤二:键入n的值,输入第一个数的值,并将此值赋给最大值和最小值在循环结束前,将后来输入的数分别与当前最大值和最小值比较,不断将目前的最大值和最小值分别赋给两个变量在不断输入的过程中,将后来输入的数加到s上步骤三:循环结束,输出最大值和最小值,并将和除以n得平均值调试及编译过程:测试数据:n=5,输入11,12,13,14,15测试数据:n=5,输入15,14,13,12,11(反向输入)出现的不足及修改:1.如何控制输入的数为n个时,本来将i的循环条件写为i<=n,发现这样写得输入n+1个数才能将输入流中的数送入运算器这样的错误时由于没有完全弄明白do while循环的特点,后改为i<=n-1,这样输入倒数第二个数时还要进行最后一次循环,于是输入最后一个数二)依据下列格里高利公式,计算圆周率π要求最后一项<10-6源程序如下:shangji3\chengxu15#include #define EPS 1e-6int main(){ int i,j; double s; for(s=0,i=1;(1.0/i)>EPS;i++) { j=(i%2)?1:-1; s+=j*(1.0/(2* i-1)); } printf("s=%.lf",4*s); return 0;}实验步骤: 步骤一:在执行函数前定义精确度,定义两个整型变量分别控制循环和决定加上的数的正负. 步骤二:开始循环,控制循环结束的条件为再次加上的数的绝对值小于精确值。

      步骤三:结束循环,将累次相加的结果输出调试及编译过程:出现的不足及修改:无 运行结果:输出预期的结果三)完全数是一些特殊的自然数它所有的真因子(即除了自身以外的约数)的和恰好等于它本身试求出1~1000范围内的所有完全数源程序如下:shangji3\chengxu16#include int wqs(int x);int main(){ int i; for(i=1;i<=1000;i++) { if(wqs(i)) printf("%4d",i); } return 0;}int wqs(int x){ int i,s; s=0; for(i=1;i<=x/2;i++) { if(!(x%i)) s+=i; } if(s==x) return (1); else return (0);}实验步骤: 步骤一:定义一个子函数用来判断一个数是否为完全数,即将1到该数的一半的数进行测试,若是此数的因子,则加到存放因子之和的变量中 步骤二:控制1到1000的循环,对每一个数用子函数进行测试,若是完全数,则输出。

      调试及编译过程: 出现的不足及修改:无 运行结果:输出预期的结果四)水仙花数是指一个 3 位数,它的每个位上的数字的 3 次幂之和等于它本身例如:13 + 53 + 33 = 153试求出所有的水仙花数源程序如下:shangji3\chengxu17#include int sxh(int x);int main(){ int i; for(i=100;i<=999;i++) { if(sxh(i)) printf("%4d",i); } return 0;}int sxh(int x){ int s,r,x1; x1=x; s=0; do { r=x%10; s+=r*r*r; }while((x/=10)!=0); if(s==x1) return (1); else return (0);}实验步骤: 步骤一:定义一个子函数用来判断一个数是否为水仙花数即在子函数中,通过控制循环将此数的三个位数上的数字的三次方相加 ,若等于这个数本身即为水仙花数。

      步骤二:建立一个循环过程将100到999之间的数试一遍,调用子函数逐个判断哪些是水仙花数并输出调试及编译过程:出现的不足及解决:1.第一次编写程序的过程中,在写子函数的过程中,由于在控制循环时将x的值改变,于是在判断x是否等于个位数字幂次方和时不能得出正确结果因为在循环过程中x的值已经改变 后来将x的值在循环前赋给另一个整型变量x1,也就是说将x的值保存在命名为x1的单元中,后来只用比较x1和幂次方和,即可判断 运行结果:修改后能够输出正确的结果五)一个的数,其七进制和九进制均为3位数,且3位数的数字正好相反试求出这个数源程序如下:shangji3\chengxu18#include int q(int x);int j(int y);int p(int x1,int x2);int main(){ int i; for(i=10;i<=1000;i++) { if(p(q(i),j(i))) printf("%4d",i); } return 0;}int q(int x){ int j,r,i=1;int s=0; do { r=x%7; for(j=1;j<=i-1;j++) r*=10; s+=r; i++; }while((x/=7)!=0); return (s);}int j(int y){ int j,r,i=1;int s=0; do { r=y%9; for(j=1;j<=i-1;j++) r*=10; s+=r; i++; }while((y/=9)!=0); return (s);}int p(int x1,int x2){ int r1,r2,r3; r1=x1%10;r2=(x1/=10)%10;r3=(x1/=10)%10; if((r1*100+r2*10+r3)==x2) return (1); else return (0);}实验步骤: 步骤一:定义两个子函数分别用来求出一个数的七进制数和九进制数,再定义一个子函数用来判断两个三位数是否为各位数字相反。

      步骤二: 在每个子函数编译过程中,控制循环使该数分别除以7和9,直到除以后为0,再将此值返回到调用处在用以判断的子函数中,将已给的两个形式参数中的一个各位调换位置比较是否与另一个相同 步骤三:逐个检测,找出符合要求的数调试及编译过程:出现的不足及修改:开始时没有发现有范围是三位数,于是在转换进制的过程中以n为位数,循环条件为除以后不为0,加大了计算的繁琐性,但具有一般性 运行结果:输出预期的结果,经检验此结果为正确的六)求解1313的尾数三位是多少源程序如下:shangji3\chengxu19#include int remain(int x);int main(){ int i,s=13; for(i=2;i<=13;i++) { s*=13; s=remain(s); } printf("the last three numbers are %d",s); return 0;}int remain(int x){ int i=1,j,r,s=0; do { r=x%10; for(j=1;j<=i-1;j++) r*=10; s+=r; i++; x/=10; }while(i<=3); return (s);}实验步骤: 步骤一:通过分析得知只要在计算过程中不断保留计算结果的低三位即可得出结果,于是定义一个子函数用来计算一个数保留低三位后的值。

      步骤二:控制循环将累次乘的积不断乘以13,将结果调用子函数保留低三位,直到循环结束输出结果调试及编译过程:出现的不足及修改:无 运行结果:输出预期的结果七)解100!尾数有多少个0源程序如下:shangji3\chengxu20#include int main(){。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.