c++给定一个不多于5位的正整数,要求:① 求它是几位数;② 分别输出每一位数字;③ 按逆序输出各位数字。例如原数为321,应输出123。
时间: 2025-02-02 15:13:06 浏览: 45
在C++中,你可以通过以下几个步骤来实现这个功能:
1. **求几位数**:
使用`std::string`将数字转换成字符串,然后获取其长度即可得到位数。因为C++中字符串的索引从0开始,所以长度减一就得到了实际的位数。
```cpp
int num = 321;
std::string strNum = std::to_string(num);
int digitCount = strNum.length() - 1; // 减去开头的空字符'0'
```
2. **输出每一位数字**:
可以遍历字符串,每次取出一位数字并打印。
```cpp
for (int i = 0; i <= digitCount; ++i) {
char digitChar = strNum[i];
std::cout << digitChar;
}
std::cout << '\n';
```
3. **按逆序输出各位数字**:
另外一个循环,从后往前取值并打印。
```cpp
for (int i = digitCount; i >= 0; --i) {
std::cout << strNum[i];
}
std::cout << '\n';
```
完整代码示例:
```cpp
#include <iostream>
#include <string>
int main() {
int num = 321;
std::string strNum = std::to_string(num);
int digitCount = strNum.length() - 1;
// 输出原始顺序
std::cout << "Original digits in order: ";
for (int i = 0; i <= digitCount; ++i) {
char digitChar = strNum[i];
std::cout << digitChar;
}
std::cout << "\n";
// 输出逆序
std::cout << "Digits in reverse order: ";
for (int i = digitCount; i >= 0; --i) {
std::cout << strNum[i];
}
std::cout << "\n";
return 0;
}
```
阅读全文
相关推荐


















