c语言中小递归,大神看看哪里出了问题

include

int main ()
{
int func (int i);
int a[5],i;
printf ("%d\n",func(5));
return 0;
}

int func (int i)
{
int a[5];
if (i == 1)
a[i] = 10;
if (i > 1)
a[i] = func[i-1]+2;
}

func()没有return,你的printf输出的无意义。

a[i] = func[i-1]+2;
TO
a[i] = func(i-1)+2;

错误太多了

你函数中又定义了一个int a[5];
func调用用了方括号。

 #include <stdio.h>
int func (int i);
int a[5];
int main ()
{
printf ("%d\n",func(5));
return 0;
}
int func (int i)
{
if (i == 1)
a[i] = 10;
if (i > 1)
a[i] = func(i-1)+2;
}

结果
8

int func (int i)函数里没有return