用c++从键盘输入5个数,然后将这5个数按逆转 后的顺序输出出来。要求逆转顺序的函数能 够处理整型、双精度型、字符串类型的数据。 (用函数重载实现)
时间: 2024-09-21 07:09:32 浏览: 41
在 C++ 中,为了实现这个功能,你可以创建一个接受不同类型数据(整型、浮点型和字符串)并返回逆转序列的通用函数。这里我们将使用模板函数和引用参数来达到目的。首先,我们需要定义一个逆转函数 template,然后提供几个具体的版本来处理不同类型的输入。
```cpp
#include <iostream>
#include <string>
#include <vector>
// 函数模板,用于逆转输入序列
template<typename T>
std::vector<T> reverse(const std::vector<T>& input) {
std::vector<T> reversed(input.size());
for (size_t i = 0; i < input.size(); ++i) {
reversed[i] = input[input.size() - 1 - i];
}
return reversed;
}
int main() {
// 使用函数重载,分别接收整型、浮点型和字符串
int integers[5], float_numbers[5], string_array[5];
// 输入5个整型
for (int i = 0; i < 5; ++i) {
std::cout << "请输入第" << (i+1) << "个整数: ";
std::cin >> integers[i];
}
// 反转整型数组
std::vector<int> reversed_integers = reverse(integers);
// 输出逆转后的整型数组
for (const auto& num : reversed_integers) {
std::cout << num << " ";
}
std::cout << "\n";
// 类似地,可以输入浮点数和字符串,并反转它们
// 以浮点数为例
for (int i = 0; i < 5; ++i) {
std::cout << "请输入第" << (i+1) << "个浮点数: ";
std::cin >> float_numbers[i];
}
std::vector<float> reversed_floats = reverse(float_numbers);
// ... 同样输出逆转的浮点数组
// 对于字符串,先存储为 vector<char>
std::vector<char> string_chars[5];
for (int i = 0; i < 5; ++i) {
std::cout << "请输入第" << (i+1) << "个字符串: ";
std::getline(std::cin, string_chars[i]);
}
std::vector<std::string> reversed_strings = reverse(string_chars);
// ... 然后转换回 std::strings 并输出
return 0;
}
```
阅读全文