无法在C中运行总计

1 c

我是编程的新手,也是这个网站的新手,所以你好......我试图获得10到10之间整数的运行总数,但是我得到了胡言乱语的答案,我只是无法理解为什么.为了试图找出问题所在,我补充说

printf(" running total is %d\n", sum);
Run Code Online (Sandbox Code Playgroud)

线路到while循环,但只是得到了更多相同的废话...请参阅http://codepad.org/UxEw6pFU的结果....

我确信这有一个非常明显的解决方案......我只是太傻了看不过它!有谁知道我做错了什么?

#include <stdio.h>


int main(void)      {

    int count,sum,square;           
    int upto=10;                 

    count = 0;                
    square = 0;                 

    while (++count < upto)   {   
        square = count * count;
        printf("square of %d is %d",count,square);     
        sum =square + sum;
        printf(" running total is %d\n", sum);
    }

    printf("overall total of squares of integers 1 thru 10 is %d\n", sum);           

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

NG.*_*NG. 9

您需要将sum初始化为0.

编辑正如其他人在事后声明的那样,你看到垃圾的原因是因为sum没有初始化并且包含内存中的内容.它可以是任何东西,你使用它将sum = square + sum为未初始化的值增加平方.

  • @blaxjax:在纯C中,局部变量不会自动初始化为任何特定的变量.在这种情况下,`sum`等于记忆中那个地方发生的事情,这不是你想要的. (3认同)