函数非法定义是什么回事?c语言

#include<stdio.h>voidmain(){intn;doubles=1;printf("inputanum");scanf("%d",&n);doublef... #include<stdio.h>
void main()

{
int n;
double s=1;
printf("input a num");
scanf("%d",&n);
double fun(int n);
s=fun(n);
printf("%f",s);

double fun(int n)
{double s=1,j=1,k=o;
int i;
for(i=2;i<=n;i++)
{ j=j+i;
k=1.0/j;
s=s+k;}
return s;

}
}
运行出错,什么fun函数非法定义,但把double fun函数放到main函数前就可以,问题究竟出现在哪里?解决方法呢?谢谢!
展开
 我来答
百度网友672af83
2009-12-07 · TA获得超过1749个赞
知道小有建树答主
回答量:753
采纳率:80%
帮助的人:700万
展开全部
不能再一个函数内定义另一函数;
void main()
{ double fun(int n){ } }
是错误的。
自己定义的函数要在main()声明 如
double fun(int n)——自己定义的函数的声明
void main()
{ a= fun(b); }
double fun(int n)
{ }
如果自己定义的函数在main()前定义c就不需声明。
double fun(int n)
{ a= fun(b); }
void main()
{ }
fyggyf
2009-12-07 · TA获得超过697个赞
知道小有建树答主
回答量:645
采纳率:100%
帮助的人:545万
展开全部
函数调用前需要声明,或者将函数的定义放在它被调用的前面:
double fun(int); //声明
int main()
{
fun(2);//调用
}
double fun(int n) //定义
{
....
}
或则
double fun(int n) //定义
{
....
}
int main()
{
fun(2);//调用
}

同时:不能将一个函数定义在一个函数内部。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sunnzy
2009-12-07 · TA获得超过2749个赞
知道答主
回答量:48
采纳率:0%
帮助的人:49万
展开全部
函数和变量一样,也是先定义后使用的,在主函数内不能定义别的函数,只能在主函数前定义,主函数中使用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-12-07
展开全部
C语言不允许定义子函数,也就是不允许在函数内部再定义另一个函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
世霁邗静竹
2019-08-06 · TA获得超过3731个赞
知道大有可为答主
回答量:3012
采纳率:33%
帮助的人:205万
展开全部
我怎么没听说过有子函数这么个东西啊??
函数就函数。而且你这么说的不明不白的,堆栈信息和错误报告贴一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式