C语言编程:组合数计算与阶乘求和

需积分: 1 0 下载量 48 浏览量 更新于2024-09-11 收藏 54KB DOC 举报
"C语言例题集" 这些C语言例题主要涵盖了递归计算阶乘、组合数计算以及创建自定义三角形类并实现相关方法。以下是详细的解释: 1. **计算组合数C(m, n)** 这段代码是计算组合数C(m, n)的程序,C(m, n)表示在m个不同元素中不重复地选取n个元素的方法数。公式为C(m, n) = m! / (n!(m - n)!), 其中"!"代表阶乘。程序首先定义了一个名为`fun`的递归函数来计算阶乘,然后在`main`函数中获取用户输入的m和n值,进行交换确保m >= n,最后计算并输出组合数。 2. **求阶乘和** 这个程序的目标是计算1到num的所有整数的阶乘之和。同样使用了`fun`函数来计算阶乘,并通过for循环累加每个数的阶乘,最后输出总和。 3. **定义三角形类Ctriangle** 这里定义了一个名为`Ctriangle`的类,用于表示三角形并提供计算面积和周长的功能。类中包含了三个私有成员变量`a`, `b`, `c`分别代表三角形的三边长度。类提供了以下方法: - `GetArea()`:计算三角形的面积,使用海伦公式(Heron's formula),即半周长p = (a + b + c) / 2,面积S = sqrt[p*(p - a)*(p - b)*(p - c)]。 - `GetZhouchang()`:返回三角形的周长,直接返回边长之和。 - `Getbianchang()`:这个方法原本应该是用来获取三角形的边长,但在代码中没有正确实现。它只是提示用户输入边长,但没有将输入的值存储到成员变量中。 此外,还有一个未完成的`Display`方法,原本应该是用于打印三角形的边长、周长和面积,但由于`Getbianchang()`的错误实现,它可能无法正确显示边长。 通过这三个例子,我们可以学习到C语言中的递归、条件判断、输入输出、类的定义与方法实现等基础知识。同时,这些例题也体现了在实际问题中如何运用编程思维来解决问题。