我想讓用戶輸入一個數字,告訴他們,如果它是Armstrong number或不,然後問他們,如果他們想再次重複這一點。 我試着寫了很多次,但沒有奏效! 當我輸入153時,它給了我「這不是阿姆斯特朗號。」 (在else語句) 我真的搞砸了,我不知道該怎麼辦:「(阿姆斯壯數字與循環 - C++
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int number, sum=0, num;
double y;
char x;
cout << "Enter a number to check if it is an Armstrong number: ";
cin >> number;
num = number;
while (number != 0) {
y = number%10;
number = number/10;
sum = sum + pow(y,3);
if (sum == num)
cout << num << "is an Armstrong number.";
else
cout << num << "is not an Armstrong number.";
cout << "do you want to continue? (y/n)";
cin >> x;
switch (x){
case 'Y':
case 'y': continue; break;
case 'N':
case 'n': cout << "bye"; break;
}
}
return 0;
}
你不能在'switch'語句中使用'break'打破'while'循環。另外,這裏需要兩個循環 - 一個用於掃描數字的外部循環,一個用於檢查數字的內部循環。 – 2014-11-14 22:37:20
簡而言之,在賦值'sum = sum + pow(y,3)'之後用'}'關閉'while'循環。 – 2014-11-14 22:50:14
另外,您需要計算數字的長度,目前您只能使用3位數字。 – 2014-11-14 23:28:38