输入10个整数,将其中最小的数与第一个数对换,把最大的数 与最后一个数对换。写3个函数: 输入10个数; 进行处理; 输出10个数。 要求:必须使用指针和函数调用。输入10个整数,将其中最小的数与第一个数对换,把最大的数 与最后一个数对换。写3个函数: 输入10个数; 进行处理; 输出10个数。 要求:必须使用指针和函数调用。
时间: 2023-12-04 07:23:59 浏览: 83
好的,这是一个比较典型的指针使用题目,下面是三个函数的实现:
```c++
#include <iostream>
using namespace std;
// 输入10个数
void input(int *arr, int len) {
cout << "请依次输入" << len << "个整数:";
for (int i = 0; i < len; i++) {
cin >> *(arr + i);
}
}
// 进行处理
void process(int *arr, int len) {
// 找到最小值和最大值的下标
int minIndex = 0, maxIndex = 0;
for (int i = 1; i < len; i++) {
if (*(arr + i) < *(arr + minIndex)) {
minIndex = i;
}
if (*(arr + i) > *(arr + maxIndex)) {
maxIndex = i;
}
}
// 交换最小值和第一个数
int temp = *(arr + 0);
*(arr + 0) = *(arr + minIndex);
*(arr + minIndex) = temp;
// 交换最大值和最后一个数
temp = *(arr + len - 1);
*(arr + len - 1) = *(arr + maxIndex);
*(arr + maxIndex) = temp;
}
// 输出10个数
void output(int *arr, int len) {
cout << "处理后的结果为:";
for (int i = 0; i < len; i++) {
cout << *(arr + i) << " ";
}
cout << endl;
}
int main() {
int arr[10];
input(arr, 10);
process(arr, 10);
output(arr, 10);
return 0;
}
```
这个程序的执行过程如下:
```
请依次输入10个整数:3 2 1 4 5 6 7 8 9 10
处理后的结果为:10 2 1 4 5 6 7 8 9 3
```
阅读全文