我開始自己學習C++,而且我正在嘗試完成一個任務,我感到困惑。只要用戶輸入0,用戶就可以輸入自然數。之後,我的程序應該找到輸入的最大數字總和並將其打印出來。它也應該打印出一個數字,從中得出結論。 這裏是我試圖做的:拆分一個整數並找到最大的總和C++
#include <iostream>
#include <string>
using namespace std;
int main()
{
int input = 0;
int digit;
int sum = 0;
int largest = 0;
do
{
cout << "enter a natural number (0 if done): " << flush;
cin >> input;
while (input > 0)
{
digit = input % 10;
sum = sum + digit;
input = input/10;
}
if (sum > largest)
largest = sum;
} while (input);
cout << "Max sum of digits was " << largest << "for" << endl;
}
當我運行它計數僅在數第一類型的,並且停止工作的數字總和PROGRAMM。當我將while (input > 0)
帶走時,它會形成一個循環,但不計數。 我將非常感謝您的幫助和解釋。 P.S.對不起,我的英語,我不是母語的人。
什麼是「摘要總和」? – deviantfan
抱歉,數字總和 –
當你退出'while(input> 0)'循環時,'input == 0'(因爲上一次迭代的'input = input/10;'將返回0)。因此,當你敲(}輸入);'條件爲'假'時,你從第一次迭代中的外部'do {..} while'循環中斷。這就是爲什麼你只能得到'1'迭代。 – 865719