| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 620 人关注过本帖
标题:关于函数调用
只看楼主 加入收藏
blueness21
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2007-7-28
收藏
 问题点数:0 回复次数:8 
关于函数调用
先说一个求阶乘的题目.
-------------------------------------------------------------------------
//原函数.
#include<iostream>
using namespace std;
long fac(int n)
{
long f;
if(n<0)
cout<<"n<0,data error!"<<endl;
else if(n==0) f=1;
else f=fac(n-1)*n;
return(f);
};
int main()
{
long fac(int n);//注意这个地方.
int n;
long y;
cout<<"Enter a positive integer:"<<endl;
cin>>n;
y=fac(n);
cout<<n<<"!="<<y<<endl;
}
-----------------------------------------------------
我觉得 <<<long fac(int n);//注意这个地方.>>>这行是没必要的.
于是删掉,可以正常运行.
但是如果这样再把自定义的fac函数剪到主函数后面的就会出现错误,必须在主函数把long fac(int n);
这句加上以示声明.就是下面的样子
#include<iostream>
using namespace std;
int main()
{
long fac(int n);//注意这个地方,必需要这句了.
int n;
long y;
cout<<"Enter a positive integer:"<<endl;
cin>>n;
y=fac(n);
cout<<n<<"!="<<y<<endl;
}
long fac(int n)
{
long f;
if(n<0)
cout<<"n<0,data error!"<<endl;
else if(n==0) f=1;
else f=fac(n-1)*n;
return(f);
};
------------------------------------------------
请问各位,是不是应该这样考虑的啊?
搜索更多相关主题的帖子: 函数 fac int long 
2007-09-13 08:37
exqus
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-7-16
收藏
得分:0 

是的

2007-09-13 08:53
远去的列车
Rank: 1
等 级:新手上路
威 望:2
帖 子:205
专家分:0
注 册:2007-8-7
收藏
得分:0 
#include<iostream>
using namespace std;

long fac(int n); // 放主函数外边

int main()
{
int n;
long y;
cout<<"Enter a positive integer:"<<endl;
cin>>n;
y=fac(n);
cout<<n<<"!="<<y<<endl;
}

long fac(int n)
{
long f;
if(n<0)
cout<<"n<0,data error!"<<endl;
else if(n==0) f=1;
else f=fac(n-1)*n;
return(f);
}; //此处多一分号

[此贴子已经被作者于2007-9-13 9:34:16编辑过]


C++学习
2007-09-13 09:33
blueness21
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2007-7-28
收藏
得分:0 
以下是引用远去的列车在2007-9-13 9:33:17的发言:
#include<iostream>
using namespace std;

long fac(int n); // 放主函数外边

int main()
{
int n;
long y;
cout<<"Enter a positive integer:"<<endl;
cin>>n;
y=fac(n);
cout<<n<<"!="<<y<<endl;
}

long fac(int n)
{
long f;
if(n<0)
cout<<"n<0,data error!"<<endl;
else if(n==0) f=1;
else f=fac(n-1)*n;
return(f);
}; //此处多一分号

现在又有问题了,我怎么发现那个分号加不加都可以正常运行啊??
我之前也更觉得应该不加似的.

2007-09-13 16:41
snakeImao
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-9-10
收藏
得分:0 
在代码中,函数声明先于函数调用出现.
函数声明一般放在程序的main部分之前.
2007-09-13 16:42
hgxwd310
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-9-10
收藏
得分:0 

up

2007-09-13 23:12
jbwang
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-5-22
收藏
得分:0 

“多一个分号”的问题:因为函数的定义到“}”就结束了,不用加分号。你加了分号只表示一个空白行。

2007-09-13 23:55
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
是啊.只要先定义了声明就是没有需要的,但是如果没有先定义就要声明一下,要不编译器不认识

学习需要安静。。海盗要重新来过。。
2007-09-14 10:33
blueness21
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2007-7-28
收藏
得分:0 
以下是引用jbwang在2007-9-13 23:55:42的发言:

“多一个分号”的问题:因为函数的定义到“}”就结束了,不用加分号。你加了分号只表示一个空白行。

懂啦,谢谢~~

2007-09-16 12:43
快速回复:关于函数调用
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026239 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved