我想让用户输入一个数字,告诉他们,如果它是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