输入一个不小于 100 且小于 1000,同时包括小数点后一位的一个浮点数,例如 123.4 ,要求把这个数字翻转过来,变成 4.321 并输出。请用c++写出来
时间: 2024-10-08 21:02:40 浏览: 26
当然,你可以使用C++来实现这个功能。下面是一个简单的示例,它定义了一个函数`reverseFloat`来实现浮点数的小数部分反转:
```cpp
#include <iostream>
#include <sstream>
// 定义一个函数用于处理浮点数的反转
std::string reverseFloatPart(float num) {
std::ostringstream oss;
oss << std::setprecision(2) << num; // 设置精度并保留两位小数
std::string str = oss.str();
std::size_t dotPos = str.find('.');
if (dotPos == std::string::npos) { // 没有小数点的情况
return "Number is an integer";
}
std::string reversedNum = str.substr(dotPos + 1); // 取出小数部分
reversedNum = std::reverse(reversedNum.begin(), reversedNum.end()); // 反转字符串
str.replace(dotPos, 2, std::to_string(reversedNum.size() + '0')); // 插入反转后的位数到原位置
str.insert(str.begin() + dotPos, '.'); // 添加小数点
return str;
}
int main() {
float input = 123.456; // 示例输入
std::string result = reverseFloatPart(input);
if (result != "Number is an integer") {
std::cout << "Reversed number: " << result << std::endl;
} else {
std::cout << result << std::endl;
}
return 0;
}
```
运行此程序,将输出反转后的小数部分,如123.654。如果输入不是包含小数点的浮点数,会返回提示"Number is an integer"。
阅读全文