一个关于递归的问题!!!麻烦大家指教一下!!!

ASCII945 2006-03-04 06:23:50
int recusion(int b[5],int y) /*递归函数*/
{
static int count=1;
int v;
if(count<5){
v=y*recusion(int b[5],int y)+b[4-count];/*出错语句*/
count++;}
else v=b[4];
return v;
}

int main()
{
int x,loop;
int a[5];
printf("please input the value of x!\n");
scanf("%d",&x);
printf("please input a0 to a4\n");
for(loop=0;loop<5;loop++) scanf("%d",&a[loop]);
printf("the value of v is %d!",recusion(a[5],x));
getch();
return 0;
}
------------------------------------------
这个程序我用wintc编译后出现了以下的错误
错误 qinjiu~1.c 11: 表达式语法错在 recusion 函数中
警告 qinjiu~1.c 15: 参数'y'从未使用在 recusion 函数中
警告 qinjiu~1.c 28: 不可移动的指针(地址常数)转换在 main 函数中

请高手们指点一点!!!!
...全文
74 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hsl25179 2006-03-04
  • 打赏
  • 举报
回复
我晕 v=y*recusion(int b[5],int y)+b[4-count];/*出错语句*/
函数体内能调用此函数么?
请教高手。。。
逸学堂 2006-03-04
  • 打赏
  • 举报
回复
v=y*recusion(int b[5],int y)+b[4-count];/*出错语句*/

~~~~~~~~~~~~~~~~··
int b[5],,这是定义,再这里应该是应用
v=y*recusion(b,y)+b[4-count];// 修改如图

下面也不对。应该
printf("the value of v is %d!",recusion(a[5],x));

// 如下所示
printf("the value of v is %d!",recusion(a,x));

qhfu 2006-03-04
  • 打赏
  • 举报
回复
v=y*recusion(int b[5],int y)+b[4-count];/*出错语句*/
这种函数调用方式完全错误,呵呵,楼主应该先看看书。
下面这样可能对。
v=y*recusion(b,y)+b[4-count];/*出错语句*/
函数调用时,只要传入实参。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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