收藏 分享(赏)

C语言上机报告之水仙花数.doc

上传人:dzzj200808 文档编号:2207464 上传时间:2018-09-05 格式:DOC 页数:6 大小:54.18KB
下载 相关 举报
C语言上机报告之水仙花数.doc_第1页
第1页 / 共6页
C语言上机报告之水仙花数.doc_第2页
第2页 / 共6页
C语言上机报告之水仙花数.doc_第3页
第3页 / 共6页
C语言上机报告之水仙花数.doc_第4页
第4页 / 共6页
C语言上机报告之水仙花数.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、C 语言程序设计上机报告课题名称:水仙花数的算法 院 (系):工程学院 专 业 班 级 : 052126 学生姓名: 喻培 学 号: 20121004040 指导教师: 熊慕舟 2013 年 11 月 24 日C 语言上机报告之水仙花数1、上机目的:1.了解 c 语言和程序设计2.学习怎样实现算法,怎样实现水仙花数的输出2、上机作业:判断是否是水仙花数。水仙花数是指一个 n 位数(n=3),它的每个位上数字 n 次幂之和等于它本身。要求:用 scanf 输入的数字为任意位数字要求进行错误检查判断该数是否为水仙花数对判断结果进行输出3、程序设计1、NS 流程图:输入 n0sum,1i,0c,nh

2、,hjn/10 不小于 1是 否n/10n,i+1i 跳出循环直到 n/10 不小于 1c=isum=j是 否输出 n“是水仙花数” 输出 n“不是水仙花数”2、算法:首先将 0 赋值给 sum,1 赋值给 i,0 赋值给 c,n 赋值给 h,h 赋值给 j,再输入任意一位数 n,对它取 10 的商,用该商与 1 比较。若不小于 1,则将该商赋值给 n,i+1 赋值给 i,再进行判断,重复以上步骤,直到 n/10 不小于1,跳出循环体,记住此时 i 的值,执行下一步。判断 c 是否小于 i。若是,则将 h 取 10 的余数赋值给 b,h 除以 10 的商赋值给 h,sum+b 的 i 次幂赋值

3、给sum, c+1 赋值给 c,再进行判断,重复以上步骤,直到 c 不小于 i,跳出循环体,执行下一步。最后判断 sum=i,若是,则输出 n“是水仙花数” ;若不是,则输出 n“不是水仙花数” 。3、程序代码: # include /预处理指令# include /定义一个函数int main() /函数首部int n,b,h,j; /定义变量sum=0; /对变量 sum 赋值c=0; /对变量 c 赋值i=1; /对变量 i 赋值printf(“please enter a number,n=?“); /输出语句scanf(“%d“, /输入任意数 nh=n; /对变量 h 赋值whil

4、e(n/10=1) /循环结构的开始n=n/10; /对变量 n 赋值i=i+1; /对变量 i 赋值 /第一层循环结束j=h; /对变量 j 赋值while(ci) /第二层循环的开始b=h%10; /对变量 b 赋值h=h/10; /对变量 h 赋值 sum=sum+(int)pow(b,i); /对变量 sum 赋值c=c+1; /对变量 c 赋值 /第二层循环结束if(sum=j) /判断语句开始printf(“是水仙花数n“); /判断正确,输出 n“是水仙花数” Else /否则,表转折 printf(“不是水仙花数n“); /输出 n“不是水仙花数”return 0; /程序结束

5、4、程序分析:(1) 、用 scanf 函数输入时,后面应该是变量地址,如“&n ”。(2) 、该程序用了两个 while 的循环语句,应当注意语句当中变量的赋值问题,进过一个循环体之后,该变量便不是原来的值了。如果想继续使用的话,就必须在执行循环体之前就把该值赋值给另一个变量。否则,程序很容易出错。(3) 、该程序单调的使用了两个 while 的循环语句,其实可以更简单一点,用一个循环语句,再在其中套用一个 for 领导的循环语句。这样程序更简单。(4)对于 pow 的幂指函数型,我们还没有接触到就使用了,本可以运用所学的知识来表示 b 的 i 次幂,一个循环语句即可。5、运行过程 :运行结

6、果:6、上机体会:对于刚接触 c 语言的我来说,这次的水仙花数程序难度有点大。我连 c 语言的程序结构都没有弄清楚,就坐在电脑前瞎翻书,但还是有点效果的。这次上机,虽然大部分时间都是在看书,但也知道了些东西。水仙花数的算法不难写出来,但程序代码就难写了。可以说,这次上机,使我对 c 语言有了更加理性的认识。因为我一开始对 c 语言什么感觉都没有,所就没想过能一次写出完整的程序代码。我是分了两次来完成的:第一次程序是找出输入的任意数的位数;第二次程序是计算出已知位数的任意数的水仙花数算法。两次都成功后,再合并起来就是完整的水仙花数程序代码了。两个程序分开来都挺成功的,但是加在一起就出问题了。153 是个水仙花数,两个程序分别输出的是 3 和 153.但合起来后输出的却是 1。结果如下:我就纳闷了,看了半天也不知道为什么,最后还是解决了。原来经过都一次循环体之后,n 的值变了。但在第二次循环体里,我是以原来 n 的值为前提运行的,所以运行结果出错了。这也是我以后要多多注意的地方。7、上机总结:总的来说,这次上机,收获还是不小的。起码 c 语言不像天书了,了解到了 c 语言的基础知识,基本的框架结构,现在不看书也能写出一些基本的程序。但不足的是,我用了两次 while,过于单调和复杂,但是我尝试过套用for 语句,老是运行出错,不会使用 for 语句。希望下次上机,能有更多的收获。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报