当前位置: 网学 > 网学资源大全 > 计算机 > 正文

C语言程序设计实习报告

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: admin 发布时间: 13/09/05
【网学提醒】:本文主要为网上学习者提供C语言程序设计实习报告,希望对需要C语言程序设计实习报告网友有所帮助,学习一下吧!

资料包括: 论文(4页670字) 源码 图纸 
说明:
一 题目的提出

1题目的描述

设计一个可容纳40位数的求n!的程序

2测试数据

40
二 系统分析

1设计思想

使用递归算法。
2 设计方案

递归定义一步比一步简单,要计算n!,先调用并计算(n-1)!要计算计算(n-1)!先调用并计算[(n-1)-1]!……依次类推,通过转化将一个问题转变成 为一个新问题,使问题逐渐简单化,再将数据依次返回上一步,最后得到运算结果。


三 模块设计

void main( ) 主函数
long double fact( ) 自定义函数,返回计算结果

四 重点难点

编这个程序是应该注意的有以下三个方面,即递归算法求解所具备的三个条件:
(1)能将一个问题转变成为一个新问题,而的问题与原问题的解法相同或类同,所不同的仅是所处理的对象,并且这些对象的变化是有规律的。
(2)可以通过上述转化使问题逐渐简单化
(3)必须有1个明确的递归出口,或者递归边界,决不能无限循化下去


五 代码

#include

long double fact(int n )//自定义函数,返回long double 型的计算结果
{
if(n==1||n==0) //递归出口
{
return 1;
}
else
return (n*fact(n-1));//递归调用函数fact
}

void main( )
{
int n,i=0;
long double f;
printf("n=");
scanf("%d",&n);//输入要算的阶乘
for(i=0;i<=n;i++)//循环计算并输出
{
f=fact(i);//调用函数
printf("%d!=%.0lf\n",i,f);
目录:
一 题目的提出
二 系统分析
三 模块设计
四 重点难点
五 代码
六 测试结果
七 使用手册
八 总结


作者点评:

先定义为int型,出现了数据的外溢;为了克服这个现象,将其改为double型,但数据稍大是依然会出现外溢现象;最后,使用了long double型,此时不再外溢。

2)但随之又出现了新的问题,即运算结果中有小数部分,影响美观。针对这个现象,我修改了printf语句,将原来的语句改成了现在的

printf("%d!=%.0lf\n",i,f);

这样,屏幕在显示运算结果的时候就将小数部分省略掉了。


  • 上一篇资讯: Sniffer(嗅探)技术原理实现及其防范
  • 下一篇资讯: 遵循原则,大力促进体育电子政务的建设
  • 相关资讯

    网学推荐

    免费论文

    原创论文

    文章排行榜

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号