#include<stdio.h>
void main()
{ int i,s;
int sum(int i);
for(i=1;i<=10;i++)
s=sum(i);
printf("s=%d\t",s);
}
sum(int j)
{ int x=0; /* error */
x+=j;
return(x);
}
把标有错误的地方改正
#include<stdio.h>
void main()
{ int i,s;
int sum(int i);
for(i=1;i<=10;i++)
s=sum(i);
printf("s=%d\t",s);
}
int x=0; //把x定义一个全局变量,就可以了,如果定义局部变量每次初始化0,结果就是i=10啦
sum(int j)
{
x+=j;
return(x);
}追问
void main()
{ int i,s;
int sum(int i);
for(i=1;i<=10;i++)
s=sum(i);
printf("s=%d\t",s);
}
int x=0; //把x定义一个全局变量,就可以了,如果定义局部变量每次初始化0,结果就是i=10啦
sum(int j)
{
x+=j;
return(x);
}追问
这我知道,可是怎么改?
追答上面不是改好了吗???
我再来改一个方式吧
#include
void main()
{ int i,s=0;//初始化
int sum(int i);
for(i=1;i<=10;i++)
s+=sum(i); //这里+=
printf("s=%d\t",s);
}
sum(int j)
{ int x=0; /* error */
x+=j;
return(x);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-04-27
你没写返回数据的类型,改一改,试下行不行。
第2个回答 推荐于2018-03-13
给你两个方案:
1、非递归:
#include<stdio.h>
int main()
{ int i,s;
int sum(int i);
s=sum(i);
printf("s=%d\t",s);
}
int sum(int j)
{
int s=0;
for(int i=1;i<=10;i++)
s+=i;
return s;
}
2、递归
#include<stdio.h>
int main()
{ int i,s;
int sum(int i);
s=sum(10);
printf("s=%d\t",s);
}
int sum(int j)
{
if(j>1)
return j+sum(j-1);
else
return j;
}本回答被提问者和网友采纳
1、非递归:
#include<stdio.h>
int main()
{ int i,s;
int sum(int i);
s=sum(i);
printf("s=%d\t",s);
}
int sum(int j)
{
int s=0;
for(int i=1;i<=10;i++)
s+=i;
return s;
}
2、递归
#include<stdio.h>
int main()
{ int i,s;
int sum(int i);
s=sum(10);
printf("s=%d\t",s);
}
int sum(int j)
{
if(j>1)
return j+sum(j-1);
else
return j;
}本回答被提问者和网友采纳