#include
int sum(int m);
int main()
{
int i,n=0;
sum(50);
for(i = 1;i<=50;i++){
n +=i;
}
printf("the sum of 1-50 is %d \n",n);
}
int
sum (int m)
{
int i, n=0;
for(i = 1;i<=m;i++)
n += i ;
printf(" the num of 1-m is %d\n",n);
}
不明白为什么这里 sum方法内的n 在循环之前 就是 一个随机的数字 ,如 3124522,我都赋值0了,谁知道为什么呢,我在 LINUX 下通过 gdb跟踪得到值。
rxy_pink 于 2009-04-03 08:10:31发表:
唉。
brucezuo 于 2009-04-02 20:34:09发表:
难道是调试的问题,
wang7131984 于 2009-04-02 18:07:08发表:
LZ是要同时使用函数和语句来实现50个数求和的功能吧~
最好不要用GDB调试,而使用自己手写的调试代码。调试工具总是不同的,但是调试代码确是永恒不变的,而且更灵活。
rxy_pink 于 2009-04-02 17:50:29发表:
还有子函数里面就不要printf了
rxy_pink 于 2009-04-02 17:49:51发表:
错了一点,把50改成n
rxy_pink 于 2009-04-02 17:49:28发表:
感觉你是多此一举,既然都用了子函数,在main函数里面就不要在涉及实现方法了。
main函数就不要for了。
int n;
int sum=0;
scanf("%d,"&n);
sum=sum(50);
printf("The sum of 1-%d is %d",n,sum);
brucezuo 于 2009-03-31 21:51:12发表:
大家帮我看看
brucezuo 于 2009-03-30 23:43:27发表:
/* test.c */
#include
int sum(int m);
int main()
{
int i,n=0;
sum(50);
for(i = 1;i<=50;i++){
n +=i;
}
printf("the sum of 1-50 is %d \n",n);
}
int sum (int m)
{
int i, n=0;
for(i = 1;i<=m;i++)
n += i ;
printf(" the num of 1-m is %d\n",n);
}