C 语言程序中子函数能不能调用子函数本身?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 语言程序中子函数能不能调用子函数本身?相关的知识,希望对你有一定的参考价值。
可以。嵌套调用或递归调用子函数。在C语言中,函数嵌套允许在一个函数中调用另外一个函数。例如
funca()
funcb();
这个就叫做嵌套调用,它是一个语言提供的程序设计的方法,也就是语言的特性。
而递归,是一种解决方案,一种思想,将一个大工作分为逐渐减小的小工作,比如说一个人要搬50块石头,他想,只要先搬走49块,那剩下的一块就能搬完了,然后考虑那49块,只要先搬走48块,那剩下的一块就能搬完了……以此类推的思考,递归是一种思想,只不过在程序中,就是依靠函数嵌套这个特性来实现了。例如
funca()
if(statement1)
funca();
else
exit(0);
递归最明显的特点就是,自己调用自己(就是函数嵌套调用) 参考技术A 可以的,自己调用自己,就是递归调用,很多算法都是递归算法
#include <iostream>
using namespace std:
int funtion(int n)
if(n == 0)
return 0;
if(n==1)
return 0;
return n&funtion(n-1);
int main(int argc,char **argv)
int n = 9;
int result;
result = funtion(n);
cout<<result<<endl;
return 0;
参考技术B 可以,这叫递归本回答被提问者采纳
VB中子程序或函数未定义是啥意思
VB中子程序或函数未定义是指Sub, Function, 或 Property 未定义等。
Sub, Function, 或 Property 未定义(错误
35)
调用 Sub、Function 或 Property 的过程必须定义。此错误有以下的原因和解决方法:
O 过程名称拼错。
检查拼写并改正。
O 试图从另一个工程调用过程,但并没有在“引用”
对话框中将该引用添加到该工程。
添加引用
显示“引用” 对话框。
查找包含要调用过程的工程名。如果“引用” 对话框中没有所要的工程名,请按“浏览”按钮来搜寻它。
选取工程名左边的复选框。
单击“确定”。
调用的过程看不到所指定的过程。
在模块中声明为 Private
的过程不能被模块外部的过程调用。如果 Option Private Module
起作用的话,其他工程就不能使用模块中的过程。寻找以确定过程的位置
申明Windows动态链接库
(DLL)例程,但例程不在指定的库或代码资源中。
检查序号(如果正使用的话)或例程名称。请确保 DLL 的版本是正确的。例程有可能只存在于较后的 DLL
版本。如果在路径中,错误版本的目录在含有正确版本的目录之前的话,就会访问到错误的 DLL。所给的 DLL 名称虽正确,但并非指定函数所包含的版本。
详细信息,可选取有问题的项目,并按下 F1 键。
VB 子程序或函数未定义是设置错误造成的,解决方法为:
1、先绘制一个命令按钮,双击命令按钮进入代码窗口。
2、首先定义一个变体变量。
3、输入一个数字,并使用ABS函数。
4、然后写输出Print语句。
5、然后点击按钮测试。
参考技术B 子程序是指你程序里面调用的程序,来看一下你的程序,Command1_Click() 里面哪里是子程序或者函数,可以发现你调用了一个VB的内置函数MSG,你想用这个函数来输出提示信息,不错。但是,想法很好,函数却用错了,你看一下MSDn会发现根本没有MSG(),近似的有MSGBOX(),这个函数正是输出内容的函数。调用之:msgbox ("注意,你的1号框里没有任何内空请加入.")
这样没有内容输入的时候,这个提示“注意,你的1号框里没有任何内空请加入.”的对话框旧出来了,学一个函数一定要搞清出他的来历,用法 参考技术C 出问题的程序中,如果有调用其他子过程的代码,可能的原因是1.你被调用的子过程明细写错了,2.你的子过程是在其他的模块,而子过程是private 不是public的过程;如果没有调用其他的过程,那可能是你的函数名字写错了(可能不存在这个函数名字, 比如format,不小心写成了fomat等等。 参考技术D 可能相应的部件没有应用,或者函数名写错了,建议发出代码。
以上是关于C 语言程序中子函数能不能调用子函数本身?的主要内容,如果未能解决你的问题,请参考以下文章