欢迎来到天天文库
浏览记录
ID:10259185
大小:143.00 KB
页数:4页
时间:2018-06-14
《实验二 循环结构程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C语言程序设计实验报告实验二循环结构程序设计一、实验目的(1)掌握用while语句,do-while语句和for语句实现循环的方法;(2)掌握循环结构的嵌套;(3)掌握break语句和continue语句的使用方法。二、实验内容及步骤1.相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8×8共64格的象棋盘说:陛下,请您赏给我一些麦子吧,就在棋盘的第一个格子中放1粒,第2格中放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上的64个格子,我就感恩不尽了。舍罕王让人扛来一袋麦子,他
2、要兑现他的许诺。国王能兑现他的许诺吗?程序1:试编程计算舍罕王共要多少粒麦子赏赐他的宰相,这些麦子合多少立方米?(已知1立方米麦子约1.42e8粒)总粒数为:sum=1+2+22+23+…+263程序代码:#includeintmain(){doublei=0,sum=1,sum1=1;doublev;while(i<=62){sum1=2*sum1;sum=sum+sum1;i++;}v=sum/1.42e8;printf("赏给他的麦子数为:%.0f",sum);printf("共有%.2f立方米",v);return0;}运行
3、结果:2.求完数。程序2:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程找出1000之内的所有完数,输出所有的完数(要求:一行显示6个数);程序代码:#includeintmain()4{inti,j,m;printf("1000之内的完数有:");for(i=1;i<=1000;i++){m=0;//每次得到一个完数后把m置零for(j=1;j4、ntf("%dt",i);}printf("");return0;}运行结果:3.打印九九乘法表程序3:编程输出如下上三角形式的九九乘法表。123456789---------12345678946810121416189121518212427162024283236253035404536424854495663647281程序代码:#includeintmain(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=9;j++)if(j5、3d",i*j);printf("");}return0;}三、问题讨论break语句和continue语句在循环结构中使用时有何区别?举例说明。Break语句提前终止循环,使程序跳到循环体之外,接着执行循环体下面的语句。例:#includeintmain(){inti,j,n=0;for(i=1;i<=4;i++)for(j=1;j<=5;j++,n++){if(n%5==0)printf("");if(i==3&&j==1)break;//遇到第3行第一列,终止内循环printf("%dt",i*j);}printf(""6、);return0;}输出结果如图:当把break语句改为continue语句时,即if(i==3&&j==1)continue输出结果为4:四、实验心得本次实验主要练习了while语句,do-while语句和for语句实现循环的方法,其用法我已经基本掌握,不过在做题时还有很多细节问题,像第一题中,定义错了变量的类型而使输出结果错误,因为最后得到的结果较大,所以应该用double类型,以后应注意数据类型的设置;第二题中最主要的是应该在每次得到一个完数后把m置零,不然的话得到的m是一个累加结果,程序出错;第三题开始做时一直出错,怎么都得不到上三角,想了好长时间7、,最后和同学讨论讨论,原来是当j
4、ntf("%dt",i);}printf("");return0;}运行结果:3.打印九九乘法表程序3:编程输出如下上三角形式的九九乘法表。123456789---------12345678946810121416189121518212427162024283236253035404536424854495663647281程序代码:#includeintmain(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=9;j++)if(j5、3d",i*j);printf("");}return0;}三、问题讨论break语句和continue语句在循环结构中使用时有何区别?举例说明。Break语句提前终止循环,使程序跳到循环体之外,接着执行循环体下面的语句。例:#includeintmain(){inti,j,n=0;for(i=1;i<=4;i++)for(j=1;j<=5;j++,n++){if(n%5==0)printf("");if(i==3&&j==1)break;//遇到第3行第一列,终止内循环printf("%dt",i*j);}printf(""6、);return0;}输出结果如图:当把break语句改为continue语句时,即if(i==3&&j==1)continue输出结果为4:四、实验心得本次实验主要练习了while语句,do-while语句和for语句实现循环的方法,其用法我已经基本掌握,不过在做题时还有很多细节问题,像第一题中,定义错了变量的类型而使输出结果错误,因为最后得到的结果较大,所以应该用double类型,以后应注意数据类型的设置;第二题中最主要的是应该在每次得到一个完数后把m置零,不然的话得到的m是一个累加结果,程序出错;第三题开始做时一直出错,怎么都得不到上三角,想了好长时间7、,最后和同学讨论讨论,原来是当j
5、3d",i*j);printf("");}return0;}三、问题讨论break语句和continue语句在循环结构中使用时有何区别?举例说明。Break语句提前终止循环,使程序跳到循环体之外,接着执行循环体下面的语句。例:#includeintmain(){inti,j,n=0;for(i=1;i<=4;i++)for(j=1;j<=5;j++,n++){if(n%5==0)printf("");if(i==3&&j==1)break;//遇到第3行第一列,终止内循环printf("%dt",i*j);}printf(""
6、);return0;}输出结果如图:当把break语句改为continue语句时,即if(i==3&&j==1)continue输出结果为4:四、实验心得本次实验主要练习了while语句,do-while语句和for语句实现循环的方法,其用法我已经基本掌握,不过在做题时还有很多细节问题,像第一题中,定义错了变量的类型而使输出结果错误,因为最后得到的结果较大,所以应该用double类型,以后应注意数据类型的设置;第二题中最主要的是应该在每次得到一个完数后把m置零,不然的话得到的m是一个累加结果,程序出错;第三题开始做时一直出错,怎么都得不到上三角,想了好长时间
7、,最后和同学讨论讨论,原来是当j
此文档下载收益归作者所有