给出一个不多于5位的正整数,要求:(1)求出它是几位数;(2)分别输出每一位数字;(3)按逆序输出各位数字,例如原数为321,应输出123.
时间: 2024-11-18 08:11:19 浏览: 13
python 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字 (示例)
5星 · 资源好评率100%
要完成这个任务,你可以使用C++中的`std::string`来存储数字并进行处理。以下是一个简单的程序示例:
```cpp
#include <iostream>
#include <sstream>
int main() {
int number;
std::cout << "请输入一个不超过5位的正整数: ";
std::cin >> number;
// 检查输入是否合法
if (number <= 0 || number >= pow(10, 5)) {
std::cerr << "输入错误!数字必须在1到9999之间。\n";
return 1;
}
// 将数字转换为字符串以便操作
std::ostringstream oss;
oss << number; // 输出完整的数字
std::string strNumber = oss.str();
// 获取数字的位数
int digit_count = strNumber.size();
// 分别输出每一位数字
std::cout << "该数字有 " << digit_count << " 位:\n";
for (char digit : strNumber) {
std::cout << digit << " ";
}
std::cout << "\n";
// 按逆序输出各位数字
std::cout << "逆序输出为: ";
for (int i = strNumber.size() - 1; i >= 0; --i) {
std::cout << strNumber[i];
}
std::cout << "\n";
return 0;
}
```
在这个程序中,我们首先读取用户输入的整数,然后将其转换为字符串`strNumber`。接着计算字符串的长度,即数字的位数。之后遍历字符串并逐个输出每位数字,以及逆序输出各位数字。
阅读全文