任何使用函数的编程语言都具有更简单、更模块化并且在调试时更容易更改的代码。函数是模块化代码中非常有用的组件。函数接受参数和输出结果的能力。函数不一定需要接受输入并始终产生结果。在许多情况下,函数只接受一些输入并且不返回任何内容。不总是回应,也不会容忍争议。本文将解释如何创建使用函数的 C++ 程序,函数接受多个参数并在处理后产生结果。
带有参数和返回值的函数
要定义一个带有几个参数的函数并向调用者函数返回一个值(调用者函数是调用我们的函数来执行某些操作的调用者函数),返回类型必须是特定类型,而不是 void ,并且参数列表中必须有给定的参数列表
语法
<return type> function_name ( <type1> argument1, <type2> argument2, … ) {
// function body
}
在下面的示例中,我们将数字作为参数传递,然后计算给定数字的阶乘,并返回结果。让我们看看算法和 C++ 中的实现。
算法
- 定义一个函数 Factorial(),它将以 n 作为参数
- 事实:= 1
- 当 n > 1 时;做
- 事实 = 事实 * n
- n = n - 1
- 结束
- 返回事实
- 结束函数体
- 调用 Factorial() 并传递 n 来查找 n 的阶乘
示例
#</span>include</span> <iostream></span></span>
using</span> namespace</span> std;</span>
long</span> factorial</span>(</span> int</span> n )</span> {</span>
long</span> fact =</span> 1</span>;</span>
while</span> (</span> n ></span> 1</span> )</span> {</span>
fact =</span> fact *</span> n;</span>
n =</span> n -</span> 1</span>;</span>
}</span>
return</span> fact;</span>
}</span>
int</span> main</span>(</span>)</span>
{</span>
cout <<</span> "Factorial of 6 is: "</span>;</span>
long</span> res =</span> factorial</span>(</span> 6</span> )</span>;</span>
cout <<</span> res <<</span> endl;</span>
cout <<</span> "Factorial of 8 is: "</span>;</span>
res =</span> factorial</span>(</span> 8</span> )</span>;</span>
cout <<</span> res <<</span> endl;</span>
cout <<</span> "Factorial of 12 is: "</span>;</span>
res =</span> factorial</span>(</span> 12</span> )</span>;</span>
cout <<</span> res <<</span> endl;</span>
}</span>
输出
Factorial of 6 is: 720
Factorial of 8 is: 40320
Factorial of 12 is: 479001600
另一个使用函数检查数字是否回文的示例。我们传递一个数字作为参数,当它是回文时,函数将返回 true,当它不是回文时,函数将返回 false。
算法
- 定义一个函数solve(),这将需要n
- 总和:= 0
- temp = n;
- 当 n > 0 时,执行
- rem := n mod 10
- 总和 := (总和 * 10) + rem
- n := (n / 2) 的下限
- 结束
- 如果 sum 与 temp 相同,则
- 返回真
- 否则
- 返回错误
- 如果结束
示例
#</span>include</span> <iostream></span></span>
#</span>include</span> <sstream></span></span>
using</span> namespace</span> std;</span>
string solve</span>(</span> int</span> n )</span> {</span>
int</span> sum =</span> 0</span>;</span>
int</span> temp =</span> n;</span>
int</span> rem;</span>
while</span>(</span> n ></span> 0</span>)</span> {</span>
rem =</span> n %</span> 10</span>;</span>
sum =</span> (</span>sum *</span> 10</span>)</span> +</span> rem;</span>
n =</span> n /</span> 10</span>;</span>
}</span>
if</span>(</span> temp ==</span> sum )</span> {</span>
return</span> "true"</span>;</span>
}</span>
else</span> {</span>
return</span> "false"</span>;</span>
}</span>
}</span>
int</span> main</span>(</span>)</span>
{</span>
cout <<</span> "Is 153 a palindrome? "</span> <<</span> solve</span>(</span> 153</span> )</span> <<</span> endl;</span>
cout <<</span> "Is 15451 a palindrome? "</span> <<</span> solve</span>(</span> 15451</span> )</span> <<</span> endl;</span>
cout <<</span> "Is 979 a palindrome? "</span> <<</span> solve</span>(</span> 979</span> )</span> <<</span> endl;</span>
}</span>
输出
Is 153 a palindrome? false
Is 15451 a palindrome? true
Is 979 a palindrome? true
结论
在编写代码时使用函数可以使代码模块化,并且在调试或使用别人的代码时有几个优点。有不同的函数模式,有时从调用者函数获取参数并将结果返回给调用者函数。有时它不接受任何输入但返回一个值。在本文中,我们通过几个示例了解了如何编写带有参数以及向调用者函数返回值的函数。使用函数非常简单且易于实现。在编写代码时使用函数总是好的,这样可以减少许多应用程序中不必要的代码重复。