简单的“数字之和”代码。它编译但是在执行时,最后一个cout为num int而不是实际的用户输入数字给出一个“0”。
如果您愿意,请随意将其复制并粘贴到您自己的编译器中,看看我的意思。
如何输出正确的“num”值?
~~~
#include <iostream>
using namespace std;
int main()
{
int num;
int sum = 0;
cout << "Please type any non-negative integer: ";
cin >> num;
while ( num > 0 ) {
sum += num % 10;
num /= 10;
}
cout << "The sum of the digits of " << num << " is " << sum << "\n";
system("PAUSE");
return 0;
}
答案 0 :(得分:11)
你一直在修改num
直到它变为0(这就是你的while ( num > 0 )
语句确保!),所以当然它最后是0!如果您想要发出之前的内容,请添加例如循环前int orig=num;
,最后发出orig
。
答案 1 :(得分:1)
问题在于num /= 10
更改num
。如果您想让它工作,您应该创建一个temp
变量,用于执行所有计算。
答案 2 :(得分:1)
下次,您可以尝试使用调试器。你会发现那些“错误”很容易!