实验八 循环结构程序设计(二).doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:3 大小:33KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

实验八 循环结构程序设计(二).doc

实验八循环结构程序设计(二).doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验八循环结构程序设计(二)【实验目的】1.熟练掌握循环程序设计,包括嵌套循环。2.熟练掌握使用break、continue语句在循环程序设计中的实现。3.继续掌握VC++的程序调试方法。【实验内容】8-1调试示例,输入正整数的个数n,再输入n个正整数,判断它们是否为素数。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。源程序(有错误的程序)error8_1.cpp#include<stdio.h>#include<math.h>voidmain(){inti,j,k,m,n;printf("输入正整数的个数n:");scanf("%d",&k);printf("输入%d个正整数\n",k);for(j=0;j<k;j++){scanf("%d",&m);n=sqrt(m);for(i=2;i<=n;i++)if(m/i==0)break;if(i>n)printf("%d是一个素数!\n",m);elseprintf("%d不是一个素数!\n",m);}/*调试时设置断点*/}运行结果(改正后程序的运行结果)输入正整数的个数n:3输入3个正整数1111是一个素数1313是一个素数1515不是一个素数(1)输入并保存上述程序后,再进行编译和连接,没有出现错误信息。(2)调试程序开始,设置1个断点,具体位置见源程序的注释。(3)单击go(F5),运行程序,输入1和9,程序运行到断点暂停,输出9是素数,结果不对。在Watch窗口的Name栏分别输入n、i、m,它们的值分别为3、4、9,这也是while循环结束时的值。从程序看,while循环有2个条件i<=n和m/i!=0,但是,当i<=n时,m/i==0的值一直为假,即实际上只有一个条件i<=n起作用,但那就无法区分m是否为素数。根据素数的定义,要判断m能否被i整除,应该用m%i==0表示,而不是程序中的m/i==0。(4)单击(StopDebugging(ShaftF5))停止调试,把/改为%后,重新编译和连接,没有错误和警告。(5)单击(Rstart(Ctrl+Shaft+F5)),重新开始调试。单击go(F5),运行程序,输入1和9,程序运行到断点暂停,输出9不是素数,正确,单击(StopDebugging(Shaft+F5))停止调试。(6)取消断点,再单击,运行程序,输入3和111315,输出结果和题目要求一致,程序调试结束。8-2输入1个正整数n,求下式的前n项之和(保留2位小数),要求使用嵌套循环。8-3输入2个正整数a和n,求a+aa+aaa+aa…a(n个a)之和。例如,输入2和3,输出246(2+22+222)。8-4输出100~200之间的所有素数,每行输出8个。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。8-5输入2个正整数m和n(1<=m,n<=500),统计并输出m和n之间的素数的个数以及这些素数的和。要求定义并调用函数prime(m)判断m是否为素数。8-6改错,找出200以内的所有完数,并输出其因子。一个数如恰好等于它的因子之和,这个数称为完数,如6=1+2+3,其中1、2、3为因子,6为因子和。(源程序error8_2.cpp)输入输出示例:1=16=1+2+328=1+2+4+7+14源程序(有错误的程序)error8_2.cpp#include"stdio.h"voidmain(){inti,j,s=1;for(i=1;i<=200;i++){for(j=2;j<=i/2;j++)if(i/j==0)s=s+j;if(s==i){printf("%d=1",i);for(j=2;j<=i/2;j++)if(i/j==0)printf("+%d",j);printf("\n");}}}实验报告要求将编程题(8-2~8-5)的程序流程图、源程序、运行结果和改错题(8-6)改正后的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,写在实验报告上。