函数套函数
约 10 分钟
函数里可以调用别的函数。把一件大事拆成几个小函数,再一层层组合,程序就清楚多了。
比如“输出一个 n 行的三角形”,可以拆成两层:底层管“打印一行 k 个星号”,上层管“循环 n 次,每次行数递增”。
void printStars(int k) { // 小函数:打一行
for (int i = 0; i < k; i++) cout << '*';
cout << endl;
}
void triangle(int n) { // 大函数:调用小函数
for (int r = 1; r <= n; r++)
printStars(r); // 第 r 行打 r 个星号
}
int main() { triangle(5); }
triangle 自己不关心“一行怎么打”,那是 printStars 的事;它只负责“打几行、每行几个”。职责分开后,哪层出问题就查哪层。
这种“大函数调小函数”像搭积木:底层积木稳了,上层随便拼。很多算法题的主函数其实就是把几个写好的小函数串起来。
注意区分:这一节是 A 调 B(不同函数互相调用),跟“函数自己调用自己”的递归不是一回事,递归下一批课再讲。
小纸条
把"输出一个 n 行的三角形"拆成两个函数。
登录 后可看答案