红联Linux门户
Linux帮助

不明白为什么这里 sum方法内的n 在循环之前 就是 一个随机的数字

发布时间:2009-03-30 23:42:45来源:红联作者:brucezuo
/* 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);

}

不明白为什么这里 sum方法内的n 在循环之前 就是 一个随机的数字 ,如 3124522,我都赋值0了,谁知道为什么呢,我在 LINUX 下通过 gdb跟踪得到值。
文章评论

共有 8 条评论

  1. rxy_pink 于 2009-04-03 08:10:31发表:

    唉。

  2. brucezuo 于 2009-04-02 20:34:09发表:

    难道是调试的问题,

  3. wang7131984 于 2009-04-02 18:07:08发表:

    LZ是要同时使用函数和语句来实现50个数求和的功能吧~
    最好不要用GDB调试,而使用自己手写的调试代码。调试工具总是不同的,但是调试代码确是永恒不变的,而且更灵活。

  4. rxy_pink 于 2009-04-02 17:50:29发表:

    还有子函数里面就不要printf了

  5. rxy_pink 于 2009-04-02 17:49:51发表:

    错了一点,把50改成n

  6. 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);

  7. brucezuo 于 2009-03-31 21:51:12发表:

    大家帮我看看

  8. 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);
    }