一个关于递归的问题!!!麻烦大家指教一下!!!
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 函数中
请高手们指点一点!!!!
问题点数:20、回复次数:3Top
1 楼qhfu(改个名字)回复于 2006-03-04 18:28:34 得分 10
v=y*recusion(int b[5],int y)+b[4-count];/*出错语句*/
这种函数调用方式完全错误,呵呵,楼主应该先看看书。
下面这样可能对。
v=y*recusion(b,y)+b[4-count];/*出错语句*/
函数调用时,只要传入实参。Top
2 楼ugg(逸学堂(exuetang.net))回复于 2006-03-04 19:46:53 得分 10
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));
Top
3 楼hsl25179(シωǒ好乖)回复于 2006-03-04 21:05:27 得分 0
我晕 v=y*recusion(int b[5],int y)+b[4-count];/*出错语句*/
函数体内能调用此函数么?
请教高手。。。Top




