用C语言 求n!为什么提示: integer.c: 错误 integer.c 11: 调用未定义的函数在 f 函数中

[复制链接]
查看11 | 回复7 | 2011-11-2 08:44:48 | 显示全部楼层 |阅读模式
#includestdio.hintf(intn){intf;if(n0)printf(\"n0,dataerror!\\n\");elseif(n==0||n==1){f=1;printf(\"%d!=1\\n\",n);}elsef=f(n-1)*n;return(f);}main(){intn;printf(\"Inputaintegernumber:\\n\");scanf(\"%d\",printf(\"%d!=%d\\n\",n,f(n));}
回复

使用道具 举报

千问 | 2011-11-2 08:44:48 | 显示全部楼层
你的函数名和变量名都用了f,系统搞不清楚了,换一个吧!
回复

使用道具 举报

千问 | 2011-11-2 08:44:48 | 显示全部楼层
两个问题,f()函数和变量重名,没有函数原型,正确的如下。#includestdio.hintfun(intn);//递归时尤其需要,写在使用之前intfun(intn){intf;if(n0)printf(\"n0,dataerror!\\n\");elseif(n==0||n==1){f=1;printf(\"%d!=1\\n\",n);}elsef=fun(n-1)*n;return(f);}intmain(intargc,char*argv[]){intn;printf(\"Inputaintegernumber:\\n\");scanf(\"%d\",printf(\"%d!=%d\\n\",n,fun(n));}赞同
回复

使用道具 举报

千问 | 2011-11-2 08:44:48 | 显示全部楼层
你函数名叫f,变量名也叫f,是非常不好的习惯。先把变量名改掉试试赞同
回复

使用道具 举报

千问 | 2011-11-2 08:44:48 | 显示全部楼层
//改为下面比较好。#includestdio.hintfact(intn){intf;if(n==0||n==1)f=1;elsef=fact(n-1)*n;return(f);}voidmain(){intn;printf(\"Inputaintegernumber:\\n\");scanf(\"%d\",if(n0)printf(\"n0,dataerror!\\n\");elseprintf(\"%d!=%d\\n\",n,fact(n));}赞同
回复

使用道具 举报

千问 | 2011-11-2 08:44:48 | 显示全部楼层
#includestdio.hintfun(intn)//函数名与变量同名{intf;if(n0)printf(\"n0,dataerror!\\n\");elseif(n==0||n==1){//f=1;//printf(\"%d!=1\\n\",n);return1;}elsef=fun(n-1)*n;return(f);}main(){intn;printf(\"Inputaintegernumber:\\n\");scanf(\"%d\",printf(\"%d!=%d\\n\",n,fun(n));}//简化一下递归#includestdio.hintfun(intn){if(n0)printf(\"n0,dataerror!\\n\");elseif(n==0||n==1)return1;elsereturnfun(n-1)*n;}main(){intn;printf(\"Inputaintegernumber:\\n\");scanf(\"%d\",printf(\"%d!=%d\\n\",n,fun(n));}赞同
回复

使用道具 举报

千问 | 2011-11-2 08:44:48 | 显示全部楼层
你只需要把intf改为任意的跟函数不同名的变量名就可以啦如:#includestdio.hintf(intn){inta;if(n0)printf(\"n0,dataerror!\\n\");elseif(n==0||n==1){a=1;printf(\"%d!=1\\n\",n);//returna;}elsea=n*f(n-1);return(a);}voidmain(){intn;printf(\"Inputaintegernumber:\\n\");scanf(\"%d\",printf(\"%d!=%d\\n\",n,f(n));}赞同
回复

使用道具 举报

千问 | 2011-11-2 08:44:48 | 显示全部楼层
把intf(intn)这个函数写到main()函数里面就行了赞同
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行