标题:为什么函数定义名long f2(int n,int k)会说我说明语法错误啊???
只看楼主
难的哟
Rank: 2
等 级:论坛游民
帖 子:26
专家分:34
注 册:2012-1-25
结帖率:100%
已结贴  问题点数:20 回复次数:11 
为什么函数定义名long f2(int n,int k)会说我说明语法错误啊???
#define k 4
#define n 5
long f1(int b)
{long power;
int i;
for(i=1;i<k;i++)
power*=b;
return power;
}
long f2(int n,int k)
{long sum;
int i;
for(i=1;i<=n;i++)
sum+=f1(i);
return sum;
}
main()
{printf("sum=%d",f2(n,k));
getch();
}
搜索更多相关主题的帖子: long 函数 power 
2012-02-14 14:53
闲出屁
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:420
专家分:612
注 册:2012-1-24
得分:20 
#define 会在你编译之前先替换所有对应文本 所以在#define 之后你的f2就变为:
long f2(int 5,int 4)
所以就错了

乔布斯是神 宫崎骏也是神~~ 才知道 原来士兵突击的主题曲是久石让的 久石让的音乐 真传神
2012-02-14 15:27
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
得分:0 
。。。。。。

[ 本帖最后由 有容就大 于 2012-2-14 19:42 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-02-14 16:13
天天涯涯
Rank: 4
等 级:业余侠客
帖 子:215
专家分:267
注 册:2011-10-17
得分:0 
学习了
2012-02-14 16:59
难的哟
Rank: 2
等 级:论坛游民
帖 子:26
专家分:34
注 册:2012-1-25
得分:0 
回复二楼
哦,我知道了,应该把long f2(int n,int k)变成long f2然后将printf(''sum=%d'',f2(n,k))变成printf(''sum=%d'',f2)
2012-02-14 17:29
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
得分:0 
以下是引用难的哟在2012-2-14 17:29:31的发言:

哦,我知道了,应该把long f2(int n,int k)变成long f2然后将printf(''sum=%d'',f2(n,k))变成printf(''sum=%d'',f2)
能不能上机调式后再下结论?你的程序不是一般的出格。

梅尚程荀
马谭杨奚







                                                       
2012-02-14 17:38
闲出屁
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:420
专家分:612
注 册:2012-1-24
得分:0 
以下是引用难的哟在2012-2-14 17:29:31的发言:

哦,我知道了,应该把long f2(int n,int k)变成long f2然后将printf(''sum=%d'',f2(n,k))变成printf(''sum=%d'',f2)

乔布斯是神 宫崎骏也是神~~ 才知道 原来士兵突击的主题曲是久石让的 久石让的音乐 真传神
2012-02-14 17:40
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
得分:0 
常量不能当变量来定义。
常数是可以做参数传入的。
一个累加数竟然可以不给初值的。
其实你这个程序相等于计算 1~3 + 2~3 + 3~3 + 4~3 + 5~3 = 225.

梅尚程荀
马谭杨奚







                                                       
2012-02-14 17:48
难的哟
Rank: 2
等 级:论坛游民
帖 子:26
专家分:34
注 册:2012-1-25
得分:0 
回复 6楼 有容就大
把long f2(int n,int k)改成long f2()和把printf(''sum=%d'',f2(n,k))改成printf(''sum=%d'',f2)后就正确啊,而且我试过了,调试后得到的答案是正确的啊。
2012-02-14 19:34
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
得分:0 
是啊f2 和 f2()的确不一样。不过改这点你就能得到正确结果我到是很奇怪。能说下结果是多少吗?

梅尚程荀
马谭杨奚







                                                       
2012-02-14 19:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-360875-1-1.html




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

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