C语言编程:阶乘计算与奇数阶乘之和
需积分: 10 9 浏览量
更新于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语言中递归、循环结构、条件判断、数学运算以及输入输出等基本编程概念和技巧。同时,也提醒我们在编写代码时需要注意逻辑的正确性和完整性。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2010-03-03 上传
2008-09-04 上传
2009-08-22 上传
2008-11-25 上传
yeyed121
- 粉丝: 0
- 资源: 1
最新资源
- java中MyEclipse快捷大全.pdf
- Java开源项目Hibernate快速入门
- 现代电子技术基础(数电部分)课后习题答案 第二章
- 用户界面设计分析文档
- AnyData 无线模块,AT指令全集【MODEM专用】
- asp新闻发布系统daima
- linux驱动编程(LED3)
- dx的入门pdf文件
- arm 片上系统设计要点
- javaScript语言精髓和编程实践迷你书
- Asp.net数据库常用的Sql操作
- 3G技术讲解.pdf 3G技术讲解.pdf
- javabean操作数据库
- 直驱永磁同步风力发电机的最佳风能跟踪控制[1]
- Thinking in C++ 02.pdf
- JSF in action(英文完整版)