#include
int Sum(int n);
int main()
{
int sum,n;
printf("Please input n:");
scanf("%d",&n);
if (n<=0)
{
printf("data error!\n");
}
else
{
sum=Sum(n);
printf("sum=%d\n",sum);
}
}
int Sum(int n)
{
int i;
static int a=0;
for (i=1;i<=n;i++)
{
a+=i;
return a;
}
}
int Sum(int n)
{
if (n == 0) return 0;
return n + Sum(n - 1);
}
你 return a; 放错位置了。应该是
int Sum(int n)
{
int i;
static int a=0;
for (i=1;i<=n;i++)
{
a+=i;
}
return a;
}
要不然你第一次就直接a=1的时候就return 跳出循环了
你这个不是递归,只是用了个for循环,错误上边的人已经说的很清楚了,return的位置错了