在C

时间:2016-10-13 23:16:48

标签: c

我的程序要求用户输入一个整数并添加数字之和。

#include <stdio.h>

int main (void)
{
  int inputNum, sum;

  // Gets the inputNum
  printf("Type in a positive integer, and this program\nwill calculate the sums of the digits: ");
  scanf("%i", &inputNum);

  do
  {
    sum += (inputNum % 10);
    inputNum /= 10;
  } while (inputNum != 0);

  printf("Your sum is: %i\n", sum);
}

但是每次输入一个整数,我得到一个大约36000的数字。我在网上看到另一个使用%d的例子,所以我试了但是没有区别。我从一开始就走错了方向吗?提前谢谢。

4 个答案:

答案 0 :(得分:1)

你从未初始化sum;它可能从价值1,000,000

开始

只是做:

int inputNum, sum = 0;

答案 1 :(得分:0)

首先,将sum初始化为0.然后尝试。 int sum = 0;

答案 2 :(得分:0)

做到:

int inputNum, sum = 0;

即,你必须初始化sum

因为在C中无法确定未初始化变量的值。你得到的价值是来自内存的垃圾。

答案 3 :(得分:-1)

将sum初始化为零。 int变量除非是全局或静态变量,否则不具有任何默认值。作为函数内部的(非静态)局部变量,它具有不确定的值。