用c++水仙花数输入越界怎么写
时间: 2024-12-14 21:08:59 浏览: 5
在 C++ 中,当处理用户输入并检查是否为水仙花数时,可能会遇到输入越界的错误。水仙花数是指那些每一位数字立方之和等于该数本身的三位数。为了防止输入越界,我们可以采取以下步骤:
```cpp
#include <iostream>
#include <cmath>
// 检查一个数是否为水仙花数
bool is_armstrong_number(int num) {
int original_num = num;
int sum = 0;
// 只保留三位数的情况
while (original_num > 0) {
int digit = original_num % 10;
sum += std::pow(digit, 3);
original_num /= 10;
}
return sum == num;
}
int main() {
int input;
std::cout << "请输入一个三位数: ";
if (!(std::cin >> input)) { // 判断输入是否成功,若失败则可能出现输入越界异常
std::cerr << "输入错误!请确保输入的是一个三位整数。\n";
return 1; // 返回错误代码
}
if (input < 100 || input > 999) { // 额外检查以防输入超出范围
std::cerr << "输入超过范围!请输入100到999之间的三位数。\n";
return 1;
}
if (is_armstrong_number(input)) {
std::cout << input << " 是水仙花数。\n";
} else {
std::cout << input << " 不是水仙花数。\n";
}
return 0;
}
```
在这个例子中,我们首先检查用户输入是否为有效的三位数,如果输入无效或者超出了范围,程序会捕获异常并给出相应的提示。这样可以避免直接导致输入越界的问题。
阅读全文