C++编写一个子函数判断任意正整数的位数,要求在主函数中输入一个正整数,并在主函数中输出结果。如果不是正整数,输出0。
时间: 2024-12-11 18:28:19 浏览: 9
在C++中,你可以创建一个名为`count_digits`的辅助函数,用于计算给定正整数的位数。然后在主函数`main`中获取用户输入,检查是否为正整数,再调用这个辅助函数。以下是实现的一个例子:
```cpp
#include <iostream>
// 辅助函数,计算正整数的位数
size_t count_digits(int num) {
if (num <= 0) { // 非正整数
return 0;
}
return static_cast<size_t>(std::log10(num)) + 1; // 对于非零数字,位数等于10的幂次加一
}
int main() {
int input;
std::cout << "Please enter a positive integer: ";
std::cin >> input;
// 检查输入是否为正整数
if (input > 0) {
size_t digits = count_digits(input);
std::cout << "The number of digits in the input is: " << digits << std::endl;
} else {
std::cout << "Input is not a positive integer. Result is 0.\n";
}
return 0;
}
```
在这个程序中,我们首先导入了`<iostream>`库来处理输入和输出。`count_digits`函数接受一个整数作为参数,如果该数是非正数,则返回0;否则,通过计算对数来确定位数。在`main`函数中,从用户那里获取输入,如果是正整数则调用`count_digits`并显示结果,否则输出0。
阅读全文