输入10个整数,将其中最小的数与第1个数交换,把最大的数与最后一个数交换。写3个函数:1. 输入10个数;2. 进行处理;3. 输出10个数。(要求使用指针)
时间: 2024-12-25 14:26:51 浏览: 7
在C++中,你可以使用指针来实现这个需求。这里是一个简单的示例,我们将编写三个函数:
1. 函数`inputNumbers(int* arr)`用于输入10个整数到数组中:
```cpp
void inputNumbers(int* arr) {
for (int i = 0; i < 10; ++i) {
std::cout << "请输入第 " << (i + 1) << " 个数: ";
std::cin >> arr[i];
}
}
```
2. 函数`processNumbers(int* arr)`负责找到并交换最小值、最大值:
```cpp
void processNumbers(int* arr) {
// 找到最小值和最大值的索引
int minIndex = 0, maxIndex = 9;
for (int i = 1; i < 9; ++i) {
if (arr[i] < arr[minIndex]) {
minIndex = i;
}
if (arr[i] > arr[maxIndex]) {
maxIndex = i;
}
}
// 交换第一个元素(可能是最小值)和最小值的实际位置
std::swap(arr[0], arr[minIndex]);
// 交换最后一个元素(可能是最大值)和最大值的实际位置
std::swap(arr[9], arr[maxIndex]);
}
```
3. 函数`outputNumbers(const int* arr)`用于输出处理后的10个数:
```cpp
void outputNumbers(const int* arr) {
for (int i = 0; i < 10; ++i) {
std::cout << "处理后的第 " << (i + 1) << " 个数: " << arr[i] << "\n";
}
}
```
完整示例:
```cpp
#include <iostream>
#include <algorithm>
//... (定义上述函数)
int main() {
int numbers[10];
inputNumbers(numbers);
processNumbers(numbers);
outputNumbers(numbers);
return 0;
}
```
阅读全文