我在MIT OCW上介紹了C++,並將以下代碼作爲計算階乘因子的基本程序和幾個相關問題在教授第一個問題集中給出。C++ BEGINNER析因程序,混淆輸出
#include <iostream>
using std::cout;
using std::cin;
int main()
{
short number;
cout << "Enter a number: ";
cin >> number;
cout << "The factorial of " << number << " is ";
int accumulator = 1;
for(; number > 0; accumulator = (accumulator * (number--)));
cout << accumulator << '.\n';
system("pause>nul");
return 0;
}
第一個問題是: 「當你輸入下列值您能得到什麼:0,1,2,9,10」
答案部分顯示爲「0:1; 1:1; 2:2; 9:362880; 10:3628800」,但這不是我所遇到的。 我的程序輸出「11768」每個顯然正確的答案,我不知道爲什麼。
答案集我看: 「0:111768; 1:111768; 2:211768; 9:36288011768; 10:362880011768」
也許有一些錯誤的代碼,但我沒有看到它。 我正在使用Visual Studio 2012.也許有人有一個想法?謝謝你的時間。
或'cout << accumulator <<「。\ n」;' – maditya
@maditya,這正是我的答案所說的。你什麼意思? –
顯然我忘記了如何閱讀。出於某種原因,我認爲你拿出了''',我提出了我認爲是另一種解決方案。所以這裏在技術上是實際的選擇:'cout << accumulator <<'\ n';' – maditya