C语言课程设计输出水仙花数.doc

C语言课程设计输出水仙花数.doc

ID:61005211

大小:420.00 KB

页数:23页

时间:2021-01-19

C语言课程设计输出水仙花数.doc_第1页
C语言课程设计输出水仙花数.doc_第2页
C语言课程设计输出水仙花数.doc_第3页
C语言课程设计输出水仙花数.doc_第4页
C语言课程设计输出水仙花数.doc_第5页
资源描述:

《C语言课程设计输出水仙花数.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、C语言程序设计课程设计评语:考勤(10)纪律(10)过程(40)设计报告(30)答辩(10)总成绩(100)自动控制控1203班专业:魏万泊班级:姓名:汤旻安学号:指导教师:兰州交通大学自动化与电气工程学院2013年07月19日1引言1.1设计目的通过该课程设计来深化对《C程序设计》的学习,深入了解结构循环体,数组,指针以及动态分布内存等技术,熟练掌握对C程序的调试,培养自身的编程习惯,初步掌握程序设计的算法,熟练Word的用法。进一步培养学生结构化程序设计的思想。1.2设计要求⑴问题分析及解决方案框架确定:充分地分析和理解问题本身

2、,弄清要求做什么。在确定解决方案框架过程中,综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。⑵详细设计和编码:确定算法的主要流程,在此基础上进行代码设计。⑶上机前程序静态检查:上机前对程序进行静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。⑷上机调试程序:在运行环境中执行编写好的程序代码,以便进一步检查程序设计中出现的错误。1.3设计方法⑴拟出设计思路⑵表示出每个函数或过程的作用画出流程图⑶写出源程序⑷运行程序2基础题2.1题目要求打印出所

3、有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为:153=13+53+33。2.2设计思路本题利用一个for循环语句,求出100到1000以内的三位数,再用if语句找出符合各个位数的立方和等于该数本身的书,即输出水仙花数。开始intg,s,bi=b*b*b+s*s*s+g*g*g是是否是图2.1基础题的流程图i=100b=i/100,s=i/10-b*10,g=i-b*100-s*10i<1000输出水仙花数printf(“”)结束i++否2.3画出流程2.4编写源程

4、序#include//主函数intmain()//定义主函数{//主函数体开始intg,s,b,i;//定义g,s,b,i为整型变量for(i=100;i<1000;i++)//控制循环次数,共循环999次{b=i/100;//表示百位数字s=i/10-b*10;//表示十位数字g=i-b*100-s*10;//表示个位数字if(i==b*b*b+s*s*s+g*g*g)//判断各个数位数字的立方和为该数本身printf("水仙花数是:%-6d",i);//执行循环体,输出水仙花数}printf("");//换

5、行return0;//返回函数值为0}//主函数结束画出流程图2.5运行结果执行以上程序,所得的结果如图2.2所示。图2.2基础题的运行结果3改错3.1改错题目下列给定的程序中,函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。请改正函数fun中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!源程序#include#includevoidfun(inta,int*b,int*c){inti,j,

6、d,y;for(i=3;i<=a/2;i=i+2){y=0;for(j=2;j<=sqrt((double)i);j++)if(i%j==0)y=0;if(y==1){d=i-a;for(j=2;j<=sqrt((double)d);j++)if(d%j==0)y=0;if(y==1){*b=i;*c=d;}}}}voidmain(){inta,b,c;do{printf("Inputa:");scanf("%d",&a);}while(a%2);fun(a,&b,&c);printf("%d=%d+%d",a,b,

7、c);}3.2错误分析⑴在第九行中y=0逻辑判断为假,操作停止,应改为y=0逻辑判断为真,操作继续执行。⑵另一个素数因是d=a-i.如果是d=i-a则取得是他的相反数,在执行次过程中计算机输出取它的反码。改正后的源程序#include//编译预处理指令#include//程序中要调用求平方sqrtvoidfun(inta,int*b,int*c)//对fun函数的声明{inti,j,d,y;//定义整型变量for(i=3;i<=a/2;i=i+2)//从i=3用递增的方式找到一个奇数,且这个数小于a

8、/2{//循环体开始y=1;//y为逻辑判断值,y=1为真,执行下列语句for(j=2;j<=sqrt((double)i);j++)//判别i是否为素数if(i%j==0)y=0;//如果i不为素数,y=0逻辑判断为假if(y==1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。