我的程序要求用户输入一个整数并添加数字之和。
#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的例子,所以我试了但是没有区别。我从一开始就走错了方向吗?提前谢谢。
答案 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变量除非是全局或静态变量,否则不具有任何默认值。作为函数内部的(非静态)局部变量,它具有不确定的值。