输入一个非负整数,编写程序判断是几位数并输出。如果输入了一个负整数,则输出Error用c++实现
时间: 2024-09-18 18:01:58 浏览: 77
你可以使用C++的`<iostream>`库来实现这个功能。下面是一个简单的C++函数,用于判断输入的整数是几位数:
```cpp
#include <iostream>
#include <cmath> // 需要用到取整和绝对值运算
// 函数来判断输入的整数是几位数
std::string determineDigitCount(int num) {
if (num < 0) {
return "Error";
} else {
int digits = floor(log10(num)) + 1; // 使用对数函数计算位数
return std::to_string(digits); // 转换为字符串并返回
}
}
int main() {
int input;
std::cout << "请输入一个整数:";
std::cin >> input;
std::string result = determineDigitCount(input);
if (!result.empty()) { // 检查是否为"Error"
std::cout << "该数有" << result << "位。\n";
}
return 0;
}
```
在这个程序中,我们首先检查输入是否为负数,如果是就直接返回"Error"。然后通过`log10()`函数计算出数字的位数,因为`log10(num)`会给出以10为底数的对数,而加1就是实际的位数。最后将结果转换为字符串输出。
如果你运行这个程序,并输入一个非负整数,它会告诉你这个数的位数;输入负数则会显示"Error"。
阅读全文