| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 381 人关注过本帖
标题:[求助]错在哪里?
只看楼主 加入收藏
kuyaya
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-6-2
收藏
 问题点数:0 回复次数:5 
[求助]错在哪里?
#include "Stdio.h"
#include "Conio.h"

long f1(int a)
{
int k;
long b;
k=a*a;
b=f2(k);
return(b);
}

long f2(int c)
{
long fac;

if(c<0)
printf("error!");
else if(c==0||c==1)
fac=1;
else
fac=c*f2(c-1);
return(fac);
}


main(void)
{
int i,j;
long sum;

printf("input two number:");
scanf("%d%d\n",&i,&j);
sum=f1(i)+f1(j);
printf("%d 2!+%d 2!=%ld\n",i,j,sum);
getch();
return 0;
}

出现错误 noname.c 16: 与'f2'声明中的类型不匹配,是怎么回事?
搜索更多相关主题的帖子: long include number return 
2007-07-28 21:12
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 
f1,f2位置交换一下

天行健,君子以自强不息!!QQ:68660681
2007-07-28 21:18
wengjinxin
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-7-17
收藏
得分:0 
2楼正解

也可以在long f1(int c) 这行之前声明一下f2,即加long f2(int c);这句
2007-07-28 21:30
小野猫
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-7-13
收藏
得分:0 
上几楼说的都不错
追究其根本原因就是要调用其它函数在主调函数之中要对被调函数进行声明,应该与定义时的函数一致,这叫做函数原型。
2楼说的可以解决你的问题,这是因为如果被调函数放在主调函数之前定义的话,在主调函数中可以省略声明。反之则必须加以声明,否则编译系统在检查时会报错。

2007-07-29 00:41
kuyaya
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-6-2
收藏
得分:0 
谢谢大虾们的指点,明白了。
2007-07-29 14:01
jianweichief
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2007-7-18
收藏
得分:0 
细心一点就好啦

2007-07-29 16:51
快速回复:[求助]错在哪里?
数据加载中...
 
   



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

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