我的'cout'没有给出正确的价值 - 为什么?

0 c++ sum-of-digits

简单的"数字和"代码.它编译但是在执行时,最后一个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;
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*lli 11

你一直在修改num,直到它变为0(这就是你的while ( num > 0 )陈述所确保的!),所以当然它最后是0!如果你想发射它之前的内容,int orig=num;在循环之前添加eg ,并orig在结束时发射.