求助C语言高手 求1至10的累加和

#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);
}追问

这我知道,可是怎么改?

追答

上面不是改好了吗???

我再来改一个方式吧
#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;
}本回答被提问者和网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网