小程序,请高手指点哪里错了!

xuyongjie1128 2011-04-05 11:14:22
/*C语言程序设计 求1+2+4+7+11+16+22+…… 前10项之和*/
#include<stdio.h>
void main()
{
int f(int);
int i,sum=0;
for(i=1;i<=10;i++)
sum=sum+f(i);
printf("%d\n",sum);
}
int f(int n)
{
int f;
if(n==1)
f=1;
else
f=f(n-1)+(n-1);
return(f);
}
编译时出错:term does not evaluate to a function.是怎么回事啊?
...全文
141 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
eye_119_eye 2011-04-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 heimodao7 的回复:]
#include<stdio.h>
int f(int);
void main()

{

int i,sum=0;
for(i=1;i<=10;i++)
sum=sum+f(i);
printf("%d\n",sum);
}
int f(int n)
{
if(n==1)
return 1;
else
return f(n-1)+(n-1……
[/Quote]


++
jason_qian 2011-04-05
  • 打赏
  • 举报
回复
看下 呵呵
如此美丽的你 2011-04-05
  • 打赏
  • 举报
回复
int f(int n)
{
int f;
if(n==1)
f=1;
else
f=f(n-1)+(n-1);//这里变量f和函数f()同名了;当定义了f();f便相当于指针
return(f);
}
xuyongjie1128 2011-04-05
  • 打赏
  • 举报
回复
谢谢大家,我明白了,就这么个函数名与变量名相同的小错误苦恼了我一晚上,呵呵!
luohaohahaha 2011-04-05
  • 打赏
  • 举报
回复

#include<stdio.h>
void main()
{
int f(int n);
int i,sum=0;
for(i=1;i<=10;i++)
sum=sum+f(i);
printf("%d\n",sum);
}
int f(int n)
{
int ff;
if(n==1 )
return 1; //这里改一下
else
{
ff=f(n-1)+(n-1); //刚刚这里我写错了,杯具
return(ff);
}
}

luohaohahaha 2011-04-05
  • 打赏
  • 举报
回复
不好意思 看错题目了

#include<stdio.h>
void main()
{
int f(int n);
int i,sum=0;
for(i=1;i<=10;i++)
sum=sum+f(i);
printf("%d\n",sum);
}
int f(int n)
{
int ff;
if(n==1 )
return 1; //这里改一下
else
{
ff=f(n-1)+n-2;
return(ff);
}
}
leejingcn 2011-04-05
  • 打赏
  • 举报
回复
函数体内的f与函数名一样了
luohaohahaha 2011-04-05
  • 打赏
  • 举报
回复

#include<stdio.h>
void main()
{
int f(int n);
int i,sum=0;
for(i=1;i<=10;i++)
sum=sum+f(i);
printf("%d\n",sum);
}
int f(int n)
{
int ff;
if(n==1 || n==2) // 少了 n ==2
return 1; //return 1;
else
{
ff=f(n-1)+f(n-2); //(n-2)前掉了f
return(ff);
}
}
heimodao7 2011-04-05
  • 打赏
  • 举报
回复
#include<stdio.h>
int f(int);
void main()

{

int i,sum=0;
for(i=1;i<=10;i++)
sum=sum+f(i);
printf("%d\n",sum);
}
int f(int n)
{
if(n==1)
return 1;
else
return f(n-1)+(n-1);

}

这样比较舒服……
無_1024 2011-04-05
  • 打赏
  • 举报
回复

/*C语言程序设计 求1+2+4+7+11+16+22+…… 前10项之和*/
#include<stdio.h>
void main()
{
int f(int);
int i,sum=0;
for(i=1;i<=10;i++)
sum=sum+f(i);
printf("%d\n",sum);
}
int f(int n)
{
int ff;//换一个变量名吧
if(n==1)
ff=1;
else
ff=f(n-1)+(n-1);
return(ff);
}

maoxing63570 2011-04-05
  • 打赏
  • 举报
回复
int f;
f(n-1)+(n-1);
函数名跟变量名一样了,换个名字

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧