注册 登录
编程论坛 C++教室

关于函数的调用问题

luguolian 发布于 2013-07-30 09:03, 535 次点击
#include<stdio.h>
int f1(int q)
{ int i;
  for(i=1;i<=q;i++)
      if(q%i==0)
          return 0;
      else return 1;
}
int f2(int x)
{ int i;
  for(i=1;i<=x;i++)
      if(f1(i)==1)
          if(f1(i-1)==1)
          {    printf("%d=%d+%d\n",x,i,x-i);return;}
}
void main()
{ int a;
int f2(int x);
int f1(int q);
  printf("Enter a number:");
  scanf("%d",&a);
  if(a%2==0)
    f2(a);
  else("The%disnt even number\n",a);
}
错误 ‘f2’:funcation must return a value
See declaration of ‘f2’
我实在是不知道错在哪里?
6 回复
#2
peach54602013-07-30 09:04
1,‘f2’:funcation must return a value,See declaration of ‘f2’
函数f2必须返回一个值,参见f2的函数定义
2,函数声明可以写在main里面?
记不清了
#3
小雪BCCN2013-07-30 10:50
回复 楼主 luguolian
在f2函数中在if条件成立条件下才有返回值,但是不成立的条件下没有返回值,但是你定义的f2函数有却的整型的返回值,所以在f2函数最后应该再加上return。
#4
peach54602013-07-30 11:29
回复 3楼 小雪BCCN
不要误导人...

要相信我,美女,信我,原地满血满蓝复活...外加几个光环...

[ 本帖最后由 peach5460 于 2013-7-30 11:39 编辑 ]
#5
小雪BCCN2013-07-30 11:42
回复 4楼 peach5460
我感觉是这样的吧……试试不就可以啦,在main函数里面f1函数和f2函数已经定义过了。
#6
小雪BCCN2013-07-30 11:44
回复 4楼 peach5460
顺便补充,f2里面不是有return吗,若没有确定的值,默认的不是1吗?在main函数里面是可以定义函数的。
#7
peach54602013-07-30 11:51
啊,默认返回1吗?

从来没听说过...
只有在没有明文规定返回值是默认有int返回
但是这个也是旧版编译器的事情了,这都21世纪了...

[ 本帖最后由 peach5460 于 2013-7-30 12:32 编辑 ]
1