函数的嵌套调用与递归调用
嵌套调用
嵌套调用是指在函数A()中调用函数B(),在函数B()中又调用函数C(),诸如此类的复杂调用.
嵌套调用简单实例
#include <stdio.h>
//定义函数
int a1(int m) {
printf("%d的平方值为:%d", m, m * m);
return 0;
}
int a2() {
int n;
printf("请输入一个数字:");
scanf_s("%d", &n);
a1(n);
return 0;
}
int main(void) {
a2();
}
a2函数中调用a1函数用于求输入整数的平方值.
结果如图:
递归调用
递归调用是指一个函数直接或者间接的调用自己本身.如果一个函数直接调用自己叫直接递归,如果一个函数简介调用自己叫间接递归.
递归调用简单实例
求a的n次方:
#include <stdio.h>
//递归调用求a的n次方
double Pow(double a,int n) {
if (n == 0) return 1;
if (n == 1) return a;
return Pow(a, n / 2) * Pow(a, n - n / 2);
}
int main(void) {
double a;
int n;
printf("求a的n次方值\n");
printf("输出a的值:");
scanf_s("%lf", &a);
printf("输出n的值:");
scanf_s("%d", &n);
printf("%.lf^%d = %.4f",a,n,Pow(a, n));
return 0;
}
结果如图: