函數(shù)的嵌套調(diào)用
定義:C語言中是不允許嵌套函數(shù)定義的熏挎,因此函數(shù)之間是相互平行的惹恃。不存在上一級函數(shù)和下一級函數(shù)。只不過在C語言中允許在一個函數(shù)中調(diào)用另一個函數(shù)论熙。這就是函數(shù)的嵌套調(diào)用。
練習(xí):計算3!+2!得值
#include<stdio.h>
int Value1()
{
int a=3,i,product=1;
for(i=3;i>0;i--)
{
product*=i;
}
return product;
}
int Value2()
{
int a=2;i,product=1;
for(i=2;i>0;i--)
{
product*=i;
}
return product;
}
int main()
{
int value;
value=value1()+value2();
printf("%d\n",value);
return 0;
}
遞歸函數(shù)的調(diào)用
定義:遞歸函數(shù)就是自己調(diào)用自己眼刃。
注意:為了防止遞歸函數(shù)無終止的進行绕辖,必須在函數(shù)內(nèi)有終止遞歸函數(shù)的條件。通常情況下會選擇條件判斷擂红,當(dāng)條件不滿足時仪际,跳出遞歸。
練習(xí):求n!
#include<stdio.h>
int product(int a)
{
int product=1;
if(a<0)
{
printf("error\n");
}
else if(a==0||a==1)
{
product=1;
}
else
{
product=a*product(a-1);
}
return product;
}
int main()
{
int a,product;
printf("input a number:");
scanf("%d",&a);
product=product(a);
}