C语言编程:阶乘计算与奇数阶乘之和
需积分: 10 86 浏览量
更新于2024-09-13
收藏 98KB TXT 举报
"C语言上机100"
在这些C语言编程实例中,我们看到了四个不同的函数,每个函数都解决了一个特定的问题。让我们逐一详细分析这些知识点。
1. **阶乘计算**
题目要求实现一个名为`fun`的函数来计算整数n的阶乘。在第一个代码段中,`fun`函数被定义为计算阶乘的递归函数。然而,当前的实现有一个逻辑错误。函数应该检查n是否为0,如果是,则返回1(因为0的阶乘是1)。正确实现如下:
```c
long fun(int n) {
if (n == 0)
return 1;
else
return n * fun(n - 1);
}
```
2. **满足条件的数之和**
第二个示例中,`fun`函数需要计算1到n之间所有同时能被3和7整除的数字的和。这里的`for`循环和`if`语句用于筛选满足条件的数字。代码中的错误在于未提供正确的表达式。正确版本如下:
```c
double fun(int n) {
int i;
double sum = 0.0;
for (i = 1; i <= n; i++) {
if (i % 3 == 0 && i % 7 == 0)
sum += 1.0 / (double)i;
}
return sum;
}
```
3. **圆的面积计算**
第三个例子是计算半径为r的圆的面积。`fun`函数应返回圆的面积。代码中的错误是缺少了π值的表示和半径的使用。修正后的代码如下:
```c
double fun(double r) {
return 3.14159 * r * r / 2.0;
}
```
4. **等比数列求和**
最后一个例子是计算等比数列的前N项和,其中首项`S1`为1,公比`q`给定,求第N项的和`s`。`fun`函数接受公比`q`,并计算总和。错误在于代码没有计算总和。正确的实现为:
```c
double fun(double q, int N) {
double s = 1.0;
for (int i = 2; i <= N; i++)
s += q * (q**(i - 1));
return s;
}
```
通过这些例子,我们可以学习到C语言中递归、循环结构、条件判断、数学运算以及输入输出等基本编程概念和技巧。同时,也提醒我们在编写代码时需要注意逻辑的正确性和完整性。
2009-06-23 上传
2010-03-03 上传
2008-09-04 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
yeyed121
- 粉丝: 0
- 资源: 1
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦