一个递归小问题

yoshikis 2011-06-10 07:26:20
#include<stdio.h>

void sum(int n)
{
int i,s;

for(i=1;i<=n;i++)
{
s+=i;
}
printf("%d\n",s);

}
void main()
{
int n=3;

sum(n);

}

为啥提示错误呢,我弄了很久,请赐教~
...全文
90 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
AnYidan 2011-06-10
  • 打赏
  • 举报
回复
LZ 说是递归,让我压力很大
cbib_cat 2011-06-10
  • 打赏
  • 举报
回复
s没有初始化为0
luciferisnotsatan 2011-06-10
  • 打赏
  • 举报
回复
int i,s;

for(i=1;i<=n;i++)
{
s+=i; // s没初始话,就+=

疯狂的犹太人 2011-06-10
  • 打赏
  • 举报
回复
不是递归吧!就只是个循环求和的问题,你那个可能就是你对s未进行初始化值:s = 0
我真的是琦琦 2011-06-10
  • 打赏
  • 举报
回复
这是递归吗?
我一直觉得递归需要函数自己调用自己的~~~~
jackiesen 2011-06-10
  • 打赏
  • 举报
回复
提示什么错误?
cqltwslt 2011-06-10
  • 打赏
  • 举报
回复
s没有初始化,会得到内存中的垃圾值,初始化为0
renyiqiu 2011-06-10
  • 打赏
  • 举报
回复
建议LZ 这样放


#include<stdio.h>
int i,s;
void sum(int n)
{
for(i=1;i<=n;i++)
{
s+=i;
}
printf("%d\n",s);

}
void main()
{
int n=3;

sum(n);

}

KID_coder 2011-06-10
  • 打赏
  • 举报
回复

#include<stdio.h>

void sum(int n)
{
int i,s;
s=0; //s赋初值,否则s的值不定,造成计算的结果错误
for(i=1;i<=n;i++)
{
s+=i;
}
printf("%d\n",s);

}
void main()
{
int n=3;

sum(n);

}


OLDMAN_Tbag 2011-06-10
  • 打赏
  • 举报
回复
你的S没有赋过值啊
king__xy 2011-06-10
  • 打赏
  • 举报
回复
这个是递归???lz还是看下递归是什么样子的吧
UnknowName 2011-06-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kid_coder 的回复:]

C/C++ code

#include<stdio.h>

void sum(int n)
{
int i,s;
s=0; //s赋初值,否则s的值不定,造成计算的结果错误
for(i=1;i<=n;i++)
{
s+=i;
}
printf("%d\n",s);

}
void main()
{
……
[/Quote]
这是正解。。。

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧