大侠帮我看看这个程序,哪有问题?
#include <stdio.h>int addn(x)
{
int s;
if(x=1)
{
s=1;
}
else
{
s=x+addn(x-1);
}
return(s);
}
main()
{
int j;
int i=100;
j=addn(100);
printf("result:%d\n",j);
}
说是用的什么递归法求1到100的和,但是结果出来个1,怎么回事,这个程序的思路还有点模糊
#include "stdio.h" int s; int addn(int x) { if(x==1) { s+=1; } else { s+=x; addn(x-1); } } main() { addn(100); printf("result:%d\n",s); }你试下 改成这样可以了!
#include <stdio.h> int addn( int x)/*////////////////////*/ { static int s=0; if(x==1) { return 1;/*////////////////////*/ } else { s=x+addn(x-1); } return s; } void main() { int j; j=addn(100); printf("result:%d\n",j); }这样可以~递归~
int add(int n) { int sum=0; if(0==n) return sum; else return sum=n+add(n-1); }