[求助]请问这题错在哪里
main(){float s();
int n;
scanf("%d",&n);
printf("s(%d)=%f\n",n,s(n));
}
float s(int n);
{float s;
if(n==1)
return(1.0);
else return(s(n-1)+n*n);
}编译时出现错误
提示信息是:declaration syntax error
请问错在哪啊
----------------解决方案--------------------------------------------------------
int n
就全部用%d。。
不要用%f
----------------解决方案--------------------------------------------------------
main()
{float s();
int n;
scanf("%d",&n);
printf("s(%d)=%f\n",n,s(n));
}
float s(int n); /*这里多了一个分号*/
{float s; /*这里不能定义s,后面的s与函数好像会混,随便改一下就可以了。*/
if(n==1)
return(1.0);
else return(s(n-1)+n*n); /*这里的S*/
}
----------------解决方案--------------------------------------------------------
s函数中不能定义s,函数名后不能加分号,因为不是声明.
----------------解决方案--------------------------------------------------------
4楼理解好像有点错了, 这里的S函数是一个递归函数,
除了去掉函数定义那行的分号外,另外再把函数s函数里面的float s;去掉就可以了
[此贴子已经被作者于2006-3-12 16:04:38编辑过]
----------------解决方案--------------------------------------------------------
我觉得是不是还得在程序前加上声明啊?
我编译的时候如果没声明的话,会报错。
----------------解决方案--------------------------------------------------------